1. 举例
insert into t_user ('name', 'gender', 'age', 'phone')
values (#{userName, jdbcType=VARCHAR}, #{gender, jdbcType=VARCHAR}, #{age, jdbcType=INTEGER}, #{phoneNum, jdbcType=VARCHAR})
2. 原因
在执行SQL时MyBatis会自动通过对象中的属性给SQL中参数赋值,它会自动将Java类型转换成数据库的类型。而在插入时,你如果插入的值是null
的话,MyBatis无法识别这个null
的类型,就可能会导致类型转化错误。
为了解决这个可能会出现的错误,就要针对这些可能为null
的字段,指定它们转换时的类型,即指定响应的jdbcType类型。