2019/11/30 mybatis学习记录 一对多,多对一,多对多关系

1.Mybatis中写JDBC type 时所对应的Java Type类型

2019/11/30 mybatis学习记录 一对多,多对一,多对多关系
例子:
2019/11/30 mybatis学习记录 一对多,多对一,多对多关系

2.resultMap的两种写法

第一种是嵌套写法:

2019/11/30 mybatis学习记录 一对多,多对一,多对多关系

注意与多对一的Association写法的区别,上面一对多是ofType 下面多对一是 javaType!!!
2019/11/30 mybatis学习记录 一对多,多对一,多对多关系

第二种是单独列出一个文件,即非嵌套的方法:

2019/11/30 mybatis学习记录 一对多,多对一,多对多关系
2019/11/30 mybatis学习记录 一对多,多对一,多对多关系

关于mybatis一对多查询的别名问题

两个表中如果有相同的字段,必须写别名!!!
一个分类对应多个产品

如 : Category表中有两个字段id name
2019/11/30 mybatis学习记录 一对多,多对一,多对多关系

product中有与category相同的两个字段:id name
2019/11/30 mybatis学习记录 一对多,多对一,多对多关系

如该例子所示:写一对多查询语句时,对id,name必须起别名
对其他属性可以起别名也可以不起,但是取了别名一定要用别名
在下面的sql语句起了别名后 在resultMap里配置数据库的名字是必须写别名字段,没有起别名的可以直接写数据库所对应的字段。

2019/11/30 mybatis学习记录 一对多,多对一,多对多关系
2019/11/30 mybatis学习记录 一对多,多对一,多对多关系

然后在数据库查询出来是这样子的:
2019/11/30 mybatis学习记录 一对多,多对一,多对多关系
可见 取了别名之后所查询出来的字段也会随之变化

关于mybatis多对一查询

在此案例中 一个分类对应多个产品,而一个产品对应一个分类 cid对应的是种类号
2019/11/30 mybatis学习记录 一对多,多对一,多对多关系
关键代码:
还是同样的sql语句,只是这次把结果存在了Product当中
2019/11/30 mybatis学习记录 一对多,多对一,多对多关系

关于mybatis的多对多查询