出现这个问题的场景
在定义数据库映射实体时有时候字段名称过长,按照java
规范应使用小驼峰命名法比如User
实体中有 userName
、age
、id
字段对应的时数据库中的user_name
、age
、id
列。这时写一个select
语句就会出现age
id
有值而userName
没有值,原因就是mybatis
不会自动把下划线命名转换成驼峰命名,解决方法有以下几种。
- 直接修改java实体类字段名比如把
userName
改为user_name
,这样做显然不太完美违背java
命名规范。 - 写
select
语句时加上as
,比如select user_name as userName form user
这样也可以解决。但是每个语句都要加上太繁琐。 - 可以在配置文件
mybatis-config.xml
中开启下划线转驼峰转换configuration
标签下加入
<settings><setting name="mapUnderscoreToCamelCase" value="true"/></settings>
就可以开启此功能。