在使用Mybatis 3.4.1 时,在对oracle进行添加操作时,如果有一个字段为空值时,则会报异常,而换成mysql则不会出现异常。

insert into emp(ID,NAME,GENDER,EMAIL) 
        values(#{id},#{name},#{gender},#{email) 

在mybatis官方文档中:settings中有这么一个属性:jdbcTypeForNull

可以知道:对于一些数据库而言如oracle,不支持JDBC类型为OTHER的,mybatis默认传入的是空值时,则是OTHER。

修改sql语句:

insert into emp(ID,NAME,GENDER,EMAIL) 
        values(#{id},#{name},#{gender},#{email,jdbcType=NULL) 或VARCHAR

另外可以在mybatis的mybatis-config.xml的的进行配置或springboot中application.properties\application.yml文件配置......

mybatis-config.xml配置:

<settings>
        <setting name="jdbcTypeForNull" value="NULL"></setting>
    </settings>
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐