原文地址:http://www.cnblogs.com/sdjnzqr/p/4304874.html

在使用Mybatis时,不同的xml配置文件,有的会提示:无效的列类型: 1111

比如这个sql:

update base.sys_person t
                 set t.rybh=#{rybh},t.xm=#{xm},t.ryzt=#{ryzt},t.sfzhm=#{sfzhm},t.xb=#{xb},t.sj=#{sj},t.yx=#{yx},t.jtzz=#{jtzz},t.bz=#{bz},t.csrq=#{csrq}
             where t.ryid=#{ryid}

 

在csrq有值时不会报错,csrq为空时会报上述错误:

 

原因时什么呢?官方文档显示:

[转]Mybatis出现:无效的列类型: 1111 错误

 

这句话的意思是,如果对一个属性字段,需要传递null值,(尤其是Date,int等类型时),JDBCType是必要的。(我觉得为了不出错,每个字段都写也是可以的)。

 

那好,根据上述文字修改:

update base.sys_person t
                 set t.rybh=#{rybh},t.xm=#{xm},t.ryzt=#{ryzt},t.sfzhm=#{sfzhm},t.xb=#{xb},t.sj=#{sj},t.yx=#{yx},t.jtzz=#{jtzz},t.bz=#{bz},t.csrq=#{csrq,jdbcType=TIMESTAMP}
             where t.ryid=#{ryid}

 

问题解决。

在使用Mybatis时,不同的xml配置文件,有的会提示:无效的列类型: 1111

比如这个sql:

update base.sys_person t
                 set t.rybh=#{rybh},t.xm=#{xm},t.ryzt=#{ryzt},t.sfzhm=#{sfzhm},t.xb=#{xb},t.sj=#{sj},t.yx=#{yx},t.jtzz=#{jtzz},t.bz=#{bz},t.csrq=#{csrq}
             where t.ryid=#{ryid}

 

在csrq有值时不会报错,csrq为空时会报上述错误:

 

原因时什么呢?官方文档显示:

[转]Mybatis出现:无效的列类型: 1111 错误

 

这句话的意思是,如果对一个属性字段,需要传递null值,(尤其是Date,int等类型时),JDBCType是必要的。(我觉得为了不出错,每个字段都写也是可以的)。

 

那好,根据上述文字修改:

update base.sys_person t
                 set t.rybh=#{rybh},t.xm=#{xm},t.ryzt=#{ryzt},t.sfzhm=#{sfzhm},t.xb=#{xb},t.sj=#{sj},t.yx=#{yx},t.jtzz=#{jtzz},t.bz=#{bz},t.csrq=#{csrq,jdbcType=TIMESTAMP}
             where t.ryid=#{ryid}

 

问题解决。

相关文章:

  • 2021-12-27
  • 2022-12-23
  • 2021-12-04
  • 2021-08-27
  • 2021-09-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-02-07
  • 2022-12-23
  • 2022-12-23
  • 2021-09-29
  • 2022-12-23
  • 2021-12-21
  • 2021-07-24
相关资源
相似解决方案