在使用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為空時會報上述錯誤:
原因時什么呢?官方文檔顯示:
這句話的意思是,如果對一個屬性字段,需要傳遞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}
問題解決。

