执行SQL时MyBatis会自动通过对象中的属性给SQL中参数赋值,它会自动将Java类型转换成数据库的类型。如果传入的是
null
它就无法准确判断这个类型应该是什么,就有可能将类型转换错误,从而报错。
要解决这个问题,可能为空的字段需要手动指定类型
一般情将所有的字段都当做可以为空,全部手动设置转换类型。
<insert id="save" parameterType="com.ten.entity.Uost"> insert into u_cost values( cost_seq.nextval, #{name,jdbcType=VARCHAR}, #{unit_cost,jdbcType=DOUBLE}, #{status,jdbcType=CHAR}, #{creatime,jdbcType=TIMESTAMP}, #{startime,jdbcType=TIMESTAMP} ) </insert>