-
- SET FOREIGN_KEY_CHECKS=0;
-
- -- ----------------------------
- -- Table structure for emp
- -- ----------------------------
- DROP TABLE IF EXISTS `emp`;
- CREATE TABLE `emp` (
- `emp_id` int NOT NULL AUTO_INCREMENT,
- `emp_name` varchar(25) DEFAULT NULL,
- `age` int DEFAULT NULL,
- `gender` char(1) DEFAULT NULL,
- `dept_id` int DEFAULT NULL,
- PRIMARY KEY (`emp_id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-
- -- ----------------------------
- -- Records of emp
- -- ----------------------------
- INSERT INTO `emp` VALUES ('1', '张三', '20', '男', '1');
- INSERT INTO `emp` VALUES ('2', '李四', '21', '女', '2');
- INSERT INTO `emp` VALUES ('3', '王五', '22', '女', '3');
- INSERT INTO `emp` VALUES ('4', '刘六', '23', '男', '4');
- INSERT INTO `emp` VALUES ('5', '林七', '24', '男', '1');
- INSERT INTO `emp` VALUES ('6', '吕八', '25', '男', '2');
-
- SET FOREIGN_KEY_CHECKS=0;
-
- -- ----------------------------
- -- Table structure for dept
- -- ----------------------------
- DROP TABLE IF EXISTS `dept`;
- CREATE TABLE `dept` (
- `dept_id` int NOT NULL AUTO_INCREMENT,
- `dept_name` varchar(25) DEFAULT NULL,
- PRIMARY KEY (`dept_id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-
- -- ----------------------------
- -- Records of dept
- -- ----------------------------
- INSERT INTO `dept` VALUES ('1', 'A');
- INSERT INTO `dept` VALUES ('2', 'B');
- INSERT INTO `dept` VALUES ('3', 'C');
- INSERT INTO `dept` VALUES ('4', 'D');
- private Integer empId;
- private String empName;
- private Integer age;
- private String gender;
表字段名:
| emp_id | emp_name | age | gender | dept_id |
3.映射文件配置:
-
- select * from t_emp where emp_id = #{emp_id}
-
4.执行结果发现empId=null,empName=null
原因:数据库表字段名中的emp_id,emp_name与实体类的属性名empId,empName不一致,由数据库不能映射到实体类属性对应的属性名
select emp_id empid from emp where emp_id = #{emp_id}
-
"jdbc.properties"/> -
-
-
"mapUnderscoreToCamelCase" value="true"/> -
-
"lazyLoadingEnabled" value="true" /> -
resultMap: 设置自定义的映射关系
id: 唯一标识–>resultMap=" "
type: 处理映射关系的实体类的类型
标签:
id: 处理主键和实体类中属性的映射关系
result: 处理普通字段和实体类中属性的映射关系
column: 设置映射关系中的字段名,必须是sql中的某字段
property: 设置映射关系中的属性的属性名,必须为实体类中的属性名
-
"empDeptMapResultMapOne" type="Emp"> -
"eid" column="eid"> -
"empName" column="emp_name"> -
"age" column="age"> -
"sex" column="sex"> -
"email" column="email"> -
"did" property="dept.did"> -
"dname" property="dept.dname"> -
-
-
- select emp.*,dept.* from emp left join dept on emp.did = dept.did where emp.eid = #{eid}
-