博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot——MyBatis配置带下划线命名的字段自动转换驼峰命名解决方案
阅读量:2036 次
发布时间:2019-04-28

本文共 679 字,大约阅读时间需要 2 分钟。

问题描述

MyBatis无法查询出属性名和数据库字段名不完全相同的数据。

即:属性名和数据库字段名分别为驼峰命名下划线命名时查出的数据为NULL

问题分析

MyBatis默认是属性名和数据库字段名一一对应的,即 

数据库表列:user_name 

实体类属性:user_name

但是java中一般使用驼峰命名 

数据库表列:user_name 

实体类属性:userName

解决方案

Spring Boot中,可以通过设置map-underscore-to-camel-case属性为true来开启驼峰功能。  

MyBatis配置: 

application.properties中: 

#开启驼峰命名转换mybatis.configuration.map-underscore-to-camel-case=true

application.yml中: 

mybatis:  configuration:    map-underscore-to-camel-case: true

 使用该配置可以让MyBatis自动将SQL中查出来的带下划线命名的字段,自动转换为驼峰命名,再去匹配类中的属性。 

例:

@Select("select phone_num,card_num from xxx where id=#{id}")public User getUserInfo(String id);

查出来的结果,会被自动转换成phoneNumcardNum,再和结果类(这里就是User )中的属性进行匹配。 

教学视频

DEBUG过程【大概40分钟以后】:

参考文章

 

转载地址:http://gegaf.baihongyu.com/

你可能感兴趣的文章
OneNote无法同步问题
查看>>
GridView选择性导出Excel
查看>>
GridView+存储过程实现'真分页'
查看>>
HTML5-认识篇
查看>>
Web Service(一):Hello World
查看>>
开启 J2EE(二)— JDBC
查看>>
使用redis做mysql缓存
查看>>
JavaWeb JavaScript
查看>>
JavaWeb Request和Response
查看>>
深入理解JVM1
查看>>
JavaWeb Servlet
查看>>
深入理解JVM3
查看>>
JavaWeb Tomcat
查看>>
rocketMQ基本理解
查看>>
Linux下的Nginx安装
查看>>
利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件
查看>>
flask_migrate
查看>>
flask_script
查看>>
threading.local
查看>>
flask上下文
查看>>