问题描述:

数据库字段为USER_ID,实体类为userId,在application.xml做如下配置,可以自动进行映射:

mybatis.configuration.mapUnderscoreToCamelCase=true或新建mybatis.xml配置文件

进行以上配置后,并没有映射成功,查出来的数据都为null。

问题分析:

1、把项目整体迁移到MySQL数据库上,可以正常查出数据,能够正常映射,那么可以证明是Oracle数据库的问题,或者是Mybatis的设置问题,排除代码逻辑问题。

2、为实体类加入映射规则:

问题依旧,查出的数据还是null值。 3、使用最简单的例子做测试,如果数据库字段是这样USERID,没有下划线,那么Mybatis是可以映射成功的。也就是说,Mybatis在使用Oracle数据库时,字段带上下划线不能映射。 解决方式: 1、将实体类改为和数据库字段一模一模,即也加上下划线,但这样又不符合JAVA的驼峰命名规范,但如果不能修改数据库,这也是权宜之计。 2、修改数据库字段,将下划线去除,如USER_ID改为USERID,这个方式对于数据库来说并不友好,因为单词间没有分割,单看字段名很难一目了然的明白字段的意义。 最后,附上官方的配置说明 mybatis-spring-boot-autoconfigure – MyBatis Sring-BootStarter | Reference Documentation  http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/#Configuration

Logo

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

更多推荐