目录
● 如果表中字段名和实体类属性名不一致,可以在SQL语句中给字段名取别名
● 给字段取得别名必须和实体类属性名一致
● 使用前提:表字段符合Mysql命名规范(使用下划线_分割单词),而实体类属性符合驼峰命
名规范
● 使用方式:
1、在核心配置文件中使用
标签,在该标签下使用 子标签来配置 2、给子标签
设置name属性值为mapUnderscoreToCamelCase,value属性值 为true
● 范例:
-
"mapUnderscoreToCamelCase" value="true" />
● 在核心配置文件使用了如上配置后,在SQL语句中可以使用表的字段名而不用考虑表字段名和
实体类属性名不一致的情况
●
性是映射的实体类
●
1、
使用property属性设置映射关系中实体类的属性名
2、
名,使用property属性设置映射关系中实体类的属性名
● 范例:
"empResultMap" type="Emp"> -
"emp_id" property="empId"> -
"emp_name" property="empName"> -
"age" property="age"> -
"gender" property="gender"> -
- resultMap="empResultMap">
- select * from t_emp where emp_id = #{empId}
● 注意:SQL语句所在标签中的resultMap属性值必须是自定义映射的id
这里多对一是指实体类中某个属性是以表中多个字段为属性构成的实体类,如员工类的部门属性,部门属性的类型是部门类,这个部门类有部门id,部门名称
"getEmpAndDeptByEmpIdResultMap" type="Emp"> -
"emp_id" property="empId"> -
"emp_name" property="empName"> -
"age" property="age"> -
"gender" property="gender"> -
"dept_id" property="dept.deptId"> -
"dept_name" property="dept.deptName"> -
- resultMap="getEmpAndDeptByEmpIdResultMap">
- select emp_id,emp_name,age,gender,t_dept.dept_id,dept_name
- from t_emp left join t_dept
- on t_emp.dept_id = t_dept.dept_id where emp_id = #{empId}
"getEmpAndDeptByEmpIdResultMap" type="Emp"> -
"emp_id" property="empId"> -
"emp_name" property="empName"> -
"age" property="age"> -
"gender" property="gender"> -
"dept" javaType="Dept"> -
"dept_id" property="deptId"> -
"dept_name" property="deptName"> - resultMap="getEmpAndDeptByEmpIdResultMap">
- select emp_id,emp_name,age,gender,t_dept.dept_id,dept_name from t_emp left join t_dept
- on t_emp.dept_id = t_dept.dept_id where emp_id = #{empId}
注意:association标签中property属性是指映射实体类中属性的名称,javaType是它的类型,而association标签下的id标签和result标签中的property属性是指javaType指定的类中的属性名称,column属性指表中的字段名
查询员工信息:
"getEmpAndDeptByEmpIdResultMap" type="Emp"> -
"emp_id" property="empId"> -
"emp_name" property="empName"> -
"age" property="age"> -
"gender" property="gender"> -
- property="dept"
- select="com.liaoxiangqian.mapper.DeptMapper.getDeptByDeptId"
- column="dept_id">
-
- resultMap="getEmpAndDeptByEmpIdResultMap">
- select * from t_emp where emp_id = #{empId}
根据员工的部门id查询部门信息:
"getDeptByDeptIdResultMap" type="Dept"> -
"dept_id" property="deptId"> -
"dept_name" property="deptName"> -
- select * from t_dept where dept_id = #{deptId}