-
关系举例
- 一对多:比如说一个班级有很多学生,可是这个班级只有一个班主任。在这个班级中随便找一个人,就会知道他们的班主任是谁;知道了这个班主任就会知道有哪几个学生。这里班主任和学生的关系就是一对多。
- 多对一:比如说一个班级有很多学生,可是这个班级只有一个班主任。在这个班级中随便找一个人,就会知道他们的班主任是谁;知道了这个班主任就会知道有哪几个学生。这里学生和班主任的关系就是多对一。
- 一对一:比如说一个班级有很多学生,他们分别有不同的学号。一个学生对应一个学号,一个学号对应一个学生;通过学号能找到学生,通过学生也能得到学号,不会重复。这里学生和学号的关系就是一对一。
- 多对多:比如说一个班级有很多学生,他们有语文课、数学课、英语课等很多课。一门课有很多人上,一个人上很多门课。这里学生和课程的关系就是多对多。
注:1.一对一的使用方法:
(1)使用嵌套结果映射来处理重复的联合结果的子集 。
(2)通过执行另外一个SQL映射语句来返回预期的复杂类型。
2.一对多的实现方法:在多的一方的表里面,添加外键。
3.多对多的实现方法:必须要通过单独的一张表来表示。
-
ResultMap
resultMap是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。resultMap解决了当POJO类中的属性与数据库字段不一致的情况,通过resultMap,两者间形成映射关系,从而省去了sql语句中的 'as' 关键字,起到简化的作用。
<resultMap type="com.shxt.model.User" id="UserBaseResultMap" autoMapping="true">
<!-- 映射主键 -->
<