广告
返回顶部
首页 > 资讯 > 后端开发 > Python >mybatis中Oracle参数为NULL错误问题及解决
  • 631
分享到

mybatis中Oracle参数为NULL错误问题及解决

mybatisOracleOracle参数为NULL错误Oracle参数为NULL 2022-12-22 12:12:34 631人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录mybatis中oracle参数为NULL错误问题1.公共配置方法2.参数配置方法mybatis oracle insert 属性为null保存报错 无效的列类型1111解决办法

mybatis中Oracle参数为NULL错误问题

在Mybatis操作Oracle数据库的时候( PS:Mysql中不会出现),会遇到个小问题,

数据库为Oracle时候,插入某个参数数据如果为null,mybatis会报错,提示类型不正确,

原因是当插入数据为null类型的时候,mybatis会自动转换为JdbcType.OTHER类型,因此需要修改一下参数的转换类型

有两种方式可以解决:

1.公共配置方法

在Mybatis配置中设置jdbcTypeForNull=NULL,

即:

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

2.参数配置方法

修改mybatis的sql语句参数通配符,设置当参数为null时候采用 JdbcType.NULL类型

即:

select * from tb where name = #{name,jdbcType=NULL}

如上两种方式配置,都可以解决Oracle下参数为null操作错误问题!

mybatis oracle insert 属性为null保存报错 无效的列类型1111

mybatis   数据库 oracle  insert 时有些备用字段为空,保存报错,无效的列类型:1111

解决办法

1、修改配置文件 application.yml  增加配置 jdbc-type-for-null: 'null' ,单引号不要忘了

mybatis:
  mapper-locations: classpath:mapping/*/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    call-setters-on-nulls: true
    jdbc-type-for-null: 'null'

2、在SQL语句里相应的属性上带上JDBCType

3、增加配置类

查看mp-starter-源码, MybatisPlusAutoConfiguration, 可以发现,第119行有一个configurationCustomizers,可以修改configuration  自定义一个,配上就完工

@Bean
    public ConfigurationCustomizer configurationCustomizer(){
        return new MybatisPlusCustomizers();
    }
 
    class MybatisPlusCustomizers implements ConfigurationCustomizer {
 
        @Override
        public void customize(org.apache.ibatis.session.Configuration configuration) {
            configuration.setJdbcTypeForNull(JdbcType.NULL);
        }

4、

第一步:把 可更新为空的 javabean 属性前加上注解:

@TableField(el = "username, jdbcType=VARCHAR")
@Email
@TableField(el = "email, jdbcType=VARCHAR")
private String email;

第二步: 使用updateAllColumnById方法,而不是updateById.    如:

this.baseMapper.updateAllColumnById(user); 

报错原因:

postgresqlmysql,SQLSERVER都支持JdbcType.NULL类型,Oracle是不支持,适配的时候也因为这个问题导致mybatis报错。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: mybatis中Oracle参数为NULL错误问题及解决

本文链接: https://www.lsjlt.com/news/175548.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作