这篇文章介绍mybatis如何处理一对一的关联关系,假设现在有班级类(表)和教师类(表),一个教师对应一个班级,一个班级也只对应一个教师。
首先创建表并插入数据:
其中,class表中的teacher_id是指向teacher表的外键:
创建实体类:
|
|
主要的处理过程在Classes类的映射文件classesMapper.xml中:
这里介绍了两种方法,第一种是通过联表查询,获取每条class记录执行一次select语句:
另一种方法是通过两次查询,先查找class,再根据查找到的class的teacher_id查询teacher,即获取每条class记录执行两次select语句:
其中的一个重点是resultMap节点中的association节点,它将查询到的列值赋给Classes类的Teacher属性类的对应字段。另外,在第二种方法中,association节点的select属性指定了第二次查询的select节点。
association节点的属性如下:
- property:对象属性的名称
- javaType:对象属性的类型
- column:对应的外键字段名称
- select:使用的另一个查询的id