为什么有时候mybatis的sql插入需要写上 #{a,jdbctype = varchar}
有时候又不需要呢
为什么有时候mybatis的sql插入需要写上 #{a,jdbctype = varchar}
有时候又不需要呢
首先明确一点jdbcType是用来指定字段类型的。一般情况下,在执行SQL时MyBatis会自动通过对象中的属性给SQL中参数赋值,它会自动将Java类型转换成数据库的类型。但是在插入时,如果插入的值是null的话,MyBatis无法识别这个null的类型,就可能会导致类型转化错误。为了解决这个可能会出现的错误,就要针对这些可能为null的字段,指定它们转换时的类型,即指定相应的jdbcType类型。如果你确定一些字段不会为null的话,自然也就不需要指定jdbcType类型。
希望对您有所帮助,如果觉得还行的话,麻烦采纳一下哈