在数据库的增删改查操作中,用的最多的就是查询操作了,查询操作又可以分成一对一查询、一对多查询和多对多查询。一个人属于一个部门,查询人的时候要查出他的部门,这是一对一查询;一辆车有四个轱辘,查询车的时候要查出这四个轱辘,这是一对多查询;一个学生选了多门课,一门课也是被多个学生选的,学生与课程之间用一张关联表来联系,这是多对多查询。
本文介绍 Mybatis 是如何处理这几种查询方式的,包括以下三个部分:
- Mybatis 一对一查询
- Mybatis 一对多查询
- Mybatis 多对多查询
- discriminator 鉴别器映射
一对一查询
从代码上来看一对一查询就是在查询 User 对象的时候,查询出他的部门 postion。在 Mybatis 中可以使用 association
来表示一对一的映射关系,并且有嵌套结果和嵌套查询两种方式。
|
嵌套结果
TUser 表有一个 resultMap 名为 BaseResultMap,配置了 TUser 对象与数据库中字段的映射。
|
我们现在要一对一查询 TUser 所在的部门 Postion,就新建一个 resultMap 叫做 userAndPosition1。它 extends
自 BaseResultMap,拥有其所有的变量。我们查询的是 TUser,同时一对一查询出 postion,所以 userAndPosition1 的类型是 TUser。
|