欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mybatis_11关联查询_多对多

程序员文章站 2022-07-11 11:19:59
一对一:模型里面有模型 一对多:模型里面有集合 多对多:集合里面有集合 映射思路 pojo类设计思路 v 将用户信息映射到user中。 v 在user类中添加订单列表属性List orderslist,将用户创建的订单映射到orderslist v 在Orders中添加订单明细列表属 ......

 

 

一对一:模型里面有模型

一对多:模型里面有集合

多对多:集合里面有集合

 

映射思路

pojo类设计思路

v  将用户信息映射到user中。

v  在user类中添加订单列表属性list<orders> orderslist,将用户创建的订单映射到orderslist

v  在orders中添加订单明细列表属性list<orderdetail> detaillist,将订单的明细映射到detaillist

v  在orderdetail中添加items属性,将订单明细所对应的商品映射到items

 

 

配置文件设计思路

在usermapper配置文件中,通过resultmap标签内使用collection标签将查询到的多条orders表的信息映射到orderslist中,

在collection中嵌套使用collection将查询到的多条orderdetail表的信息映射到detaillist中,

在collection中在嵌套association将items表的信息映射到orderdetail对象的items属性

 

 具体案例

第一步:usermapper.java

mybatis_11关联查询_多对多

 

第二步:user/orders/orderdetail.java

mybatis_11关联查询_多对多

orders:

mybatis_11关联查询_多对多

 

mybatis_11关联查询_多对多

 

第三步:usermapper.xml

mybatis_11关联查询_多对多

 

mybatis_11关联查询_多对多

 

第四步:测试

mybatis_11关联查询_多对多

 

打印效果

mybatis_11关联查询_多对多

 

总结

resulttype:将查询结果按照sql列名pojo属性名一致性映射到pojo中。

resultmap:使用association和collection完成一对一和一对多高级映射(对结果有特殊的映射要求)。

association:将关联查询信息映射到一个pojo对象中。

collection:将关联查询信息映射到一个list集合中。