其内置属性有特定的顺序
resultMap属性
-
id:与select等属性的resultMap属性进行联动使用
-
type:实体类属性(如果没有配置核心配置文件的相关属性 需要赋值其完整路径)
resultMap内的属性
-
id是自增数据字段
-
result是其他非自增字段
-
如果实体类属性名称和数据库字段名称相同可以不写
-
显示的顺序和result的顺序和没有关系 和SQL语句中排序顺序有关
column:数据库字段名名称(准确来说是SQL语句中的字段名称名称 如果字段起别名 那么就要使用别名)
property:实体类中的属性名称
-
实例讲解
数据库结构为
实体类为
package com.qcby.mybatis.pojo;
public class Emp {
private Integer empId;
private String empName;
private Integer age;
private Character sex;
private String email;
public Emp(Integer empId, String empName, Integer age, Character sex, String email) {
this.empId = empId;
this.empName = empName;
this.age = age;
this.sex = sex;
this.email = email;
}
public Emp() {
}
public Integer getEmpId() {
return empId;
}
public void setEmpId(Integer empId) {
this.empId = empId;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Character getSex() {
return sex;
}
public void setSex(Character sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Emp{" +
"empId=" + empId +
", empName='" + empName + '\'' +
", age=" + age +
", sex=" + sex +
", email='" + email + '\'' +
'}';
}
}
编写EmpMapper接口文件方法
Emp getEmpById(Integer id);
EmpMapper.xml中进行特殊测试
我们将一个数据进行别名重置 让其与实体类中的属性名称不相同
将一个数据使用数据库中的原字段名
结果为
DEBUG 10-08 00:08:41,313 ==> Preparing: select emp_id idEmp,emp_name nameEmp,age,sex,email from emp where emp_id = ? (BaseJdbcLogger.java:137)
DEBUG 10-08 00:08:41,329 ==> Parameters: 1(Integer) (BaseJdbcLogger.java:137)
DEBUG 10-08 00:08:41,336 <== Total: 1 (BaseJdbcLogger.java:137)
Emp{empId=1, empName='null', age=12, sex=女, email='ll@qq.com'}
验证了准确来说是SQL语句中的字段名称名称 如果字段起别名 那么就要使用别名