与MyBatis框架结合使用时,发现如果SQL语句为insert或update,则如果变量包含空值,则会报告错误。
# # cause : Java.SQL.sqlexception : JZ 0063360 caughtioexception : Java.io.io exception : JZ 063360 unsuporterter
由于MyBatis指定的是jdbcType类型的参数,因此如果参数为null,则数据库无法识别此格式,因为该类型默认设置为jdbcType.OTHER。
解决方法:将JDBC类型添加到参数中即可解决。 请注意大小写。
即,图:
MyBatis会自动将Java类型转换为数据库类型,以便在运行SQL时根据对象中的属性为SQL中的参数赋值。 如果传递参数值为null的程序,则无法准确确定此类型应该是什么。 (是整合器吗? 是VARCHAR吗? 还是另一个? 时,可能会错误地报告类型转换错误。
添加jdbcType是为了解决这些错误,您必须手动指定用于转换可能为空的字段的类型。
通常,您认为默认情况下所有字段都可以为空。 这意味着您只需手动设置所有转换类型,而无需确定每个字段是否都可以为空。
此外,还必须在mybatis-config.xml文件中进行以下配置,以添加settings配置;