数据库设计
我们用学生和老师的例子来说明:
一对多:一个老师有多个学生,转换为程序设计语言即为一个老师对象下有一个学生对象集合。
多对一:多个学生有同一个老师,学生对象里有一个属性关联着老师。
创建学生、教师表
多对一处理
1、Student
Teacher
2、编写 Mapper 接口
StudentMapper.java 定义了两个查询方法,基于不同的实现方式。
3、编写 Mapper 接口对应的配置文件
关于 StudentMapper.xml 的书写有两种方式。
按查询嵌套处理
关于 getTeacher 查询中的 tid,是随便命名的,如果该查询 SQL 有多个查询条件,则必须一致,如下所示:
测试代码
执行结果为:
按结果嵌套处理
StudentMapper.xml
测试代码
上述两种方式的执行效果是一致的,选择哪种方式根据个人理解,觉得哪种简单就使用哪种。
一对多的处理
1、实体类
2、Mapper 接口
3、TeacherMapper.xml
同多对一处理一样,这里也有两种实现方式。
按查询嵌套处理
测试
执行结果为:
按结果嵌套处理
测试
总结
1、 联-association 用于一对一和多对一
2、 集合-collection 用于一对多的关系
3、 JavaType 和 ofType 都是用来指定对象类型的
JavaType 是用来指定 pojo 中属性的类型
ofType 指定的是映射到 list 集合属性中 pojo 的类型。
参考文献