- 表
t_emp
字段:
- 类
Emp
属性:
- 查询方法:
Emp getEmpByEmpId(@Param("empId") Integer empId);
MySQL字段:“_”
Java属性是驼峰命名
二者明显无法对应,因此在mapper中无法有效建立字段和属性的映射
处理字段和属性的映射关系的方式
1.通过别名设置匹配关系
通过MySQL的别名特性,在mapper中处理映射关系。
<select id="getEmpByEmpId" resultType="Emp">
SELECT * FROM t_emp WHERE emp_id = #{empId};
</select>
2.配置config文件mapUnderscoreToCamelCase
直接在配置文件中设置映射关系,无需修改mapper。
<settings>
<!--将下划线映射为驼峰。emp_name 转换为 empName-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
3.resultMap
处理字段和属性的映射关系
在mapper中通过resultMap自定义映射。
<!--设置自定义映射关系-->
<resultMap id="empResultMap" type="Emp">
<id column="emp_id" property="empId"></id>
<result column="emp_name" property="empName"></result>
<result column="age" property="age"></result>
<result column="gender" property="gender"></result>
</resultMap>
<select id="getEmpByEmpId" resultMap="empResultMap">
SELECT * FROM t_emp WHERE emp_id = #{empId};
</select>
/*
resultMap:设置自定义映射
属性:
id:表示自定义映射的唯一标识
type:查询的数据要映射的实体类的类型
子标签:
id:设置主键的映射关系
result:设置普通字段的映射关系
association:设置多对一的映射关系
collection:设置一对多的映射关系
子标签属性:
property:设置映射关系中实体类中的属性名
column:设置映射关系中表中的字段名
*/