多对多查询总结resultType和resultMap

4.1查询用户及用户购买的商品

SQL语句如下:

/****** Script for SelectTopNRows command from SSMS  ******/

SELECT

         o.*

   ,u.username

   ,u.sex

   ,u.address

   ,o2.id orderdetail_id

   ,o2.orders_id

   ,o2.items_id

   ,o2.items_num

   ,i.name

   ,i.price

   ,i.detail

FROM [orders] o

         ,[user] u

         ,orderdetail o2

         ,items i

WHERE o.user_id = u.id

AND o.id = o2.orders_id

and i.id=o2.items_id

4.2映射思路:

将用户信息映射到user中。

在user类中添加订单列表属性List<Orders> orderslist。将用户创建的订单映射到orderslist

在orders中添加订单明细列表属性List<orderDetail>orderdetails;将订单明细映射到orderdetails

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

【当需要聚合的时候使用】

4.3 多对多查询总结

将查询用户购买的商品信息明细清单,(用户名、用户地址、购买商品名称、购买商品时间、购买商品数量)

针对上边的需求使用resultType将查询到的记录映射到一个扩展的pojo,很简单实现明细清单的功能

小结:

         一对多是多对多的特例,如下需求:

         查询用户购买商品信息,用户和商品的关系是多对多关系。

         需求1:【简单展示查询列表使用:resultType,resultType是无法将查询结果映射到list集合中去】

                   查询字段:用户账号、用户名称、用户性别、商品名称、商品价格(最常见)

                   企业开发中常见的明细列表,用户购买商品明细列表,

                   使用resultType将上边查询列映射到pojo输出

         需求2:【收敛功能使用:resultMap】

                   查询字段:用户账号、用户名称、购买商品数量、商品明细(鼠标移动上去显示明细)

                   使用resultMap将用户购买的商品明细列表映射到user对象中。

                  

猜你喜欢

转载自www.cnblogs.com/shang44/p/8919444.html