本节我们将探索mybatis解决字段和属性的映射关系3 - 通过resultMap设置自定义映射关系
目录
3. 取消mybatis设置的mapUnderscoreToCamelCase
1.接口和pojo实体类
不变,这个可以参考前面的文章
2.mapper映射文件
2.1 resultMap
这里不再是result type, 而是resultMap, 名字的话是自己定义的。
<select id="getAllEmp" resultMap="empResultMap">
select * from t_user;
</select>
2.2 resultMap细节
property是我们实体类里定义的属性,column是对应数据库表里的字段值。
<resultMap id="empResultMap" type="Emp">
<id property="eid" column="eid"></id>
<result property="empName" column="emp_Name"></result>
<result property="age" column="age"></result>
<result property="sex" column="sex"></result>
<result property="email" column="email"></result>
</resultMap>
3. 取消mybatis设置的mapUnderscoreToCamelCase
mybatis - config里面mapUnderscoreToCamelCase这段需要删除。
<settings>
<setting name="logImpl" value="LOG4J"/>
<!-- 将自动映射转为驼峰, emp_name-> empName -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
4.测试类
@Test
public void testGetAllEmp(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
List<Emp> allEmp = mapper.getAllEmp();
allEmp.forEach(user -> System.out.println(user));
}
5.结果
每个字段都取到了正确的值。
6. 总结
resultMap:设置自定义映射关系
type 设置映射关系中的类型
id property: 设置唯一的键,唯一标识,主键字段。
result property: 设置普通字段
column: 数据库字段名