MyBatis添加空值时,需要确定JdbcType.如#{name,jdbcType=VARCHAR}版权声明
原创在执行SQL时MyBatis由对象中的属性自动给定。SQL在参数分配中,它将自动执行。Java类型将转换为数据库的类型。一旦传入null它无法准确地判断该类型应该是什么,并且有可能将该类型转换为错误,从而报告错误。
要解决此问题,您需要手动指定这些字段可能为空的类型。
一般来说,我们不需要按字段进行标识。/判断它是否可以为空,但将所有字段视为空,并手动设置转换类型。
-
<insert id="save" -
parameterType="com.tarena.entity.Cost"> -
insert into cost values( -
cost_seq.nextval, -
#{name,jdbcType=VARCHAR}, -
#{base_duration,jdbcType=INTEGER}, -
#{base_cost,jdbcType=DOUBLE}, -
#{unit_cost,jdbcType=DOUBLE}, -
#{status,jdbcType=CHAR}, -
#{descr,jdbcType=VARCHAR}, -
#{creatime,jdbcType=TIMESTAMP}, -
#{startime,jdbcType=TIMESTAMP}, -
#{cost_type,jdbcType=CHAR} -
) -
</insert>
有关其他数据类型,请参阅下图

版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123


