mybatis返回map不是驼峰命名
时间: 2023-09-05 17:02:49 浏览: 147
Mybatis返回的Map对象中的key值默认情况下是数据库列名字母全小写,若数据库列名采用的是下划线命名规则,则Map中的key值也会采用下划线分割的方式。这是因为Mybatis在映射数据库结果集时,对列名采用了一种简单的转换策略。
要解决Mybatis返回的Map不是驼峰命名的问题,可以通过两种方式来处理:
1.设置Mybatis全局配置属性:将mapUnderscoreToCamelCase设置为true。这样Mybatis在解析结果集时,会将下划线分割的列名转换为驼峰命名的key值。
示例代码如下:
```xml
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
```
2.使用ResultMap映射结果集:在Mapper.xml中通过ResultMap配置来显式指定每个字段的映射关系,可以设置自定义的key值。这样返回的Map中的key值就会按照我们预期的驼峰命名规则。
示例代码如下:
```xml
<resultMap id="resultMap" type="java.util.HashMap">
<id column="user_id" property="userId"/>
<result column="user_name" property="userName"/>
</resultMap>
<select id="getUser" resultMap="resultMap">
SELECT user_id, user_name FROM users WHERE user_id = #{userId}
</select>
```
通过以上两种方式,我们可以灵活地解决Mybatis返回的Map不是驼峰命名的问题。
阅读全文