要查询用户以及用户所购买的商品信息,经过分析用户和商品数据库级别没有任何关系,用户和商品需要建立关系,要通过订单,订单明细建立关系。根据这个需求,可以分析出需要查询的主表为:
<强>查询主表:用户表强>
查询关联表:由于商品和用户没有关系,通过订单和订单明细进行关联,所以得出关联表是:订单订单表,orderDetail订单明细表,项目商品表。这样的话,sql该如何去写?这样写:
选择 订单。*, t_user。id user_id, t_user.address, t_user.name, t_user.brithday, orderdetail。id orderdetail_id, orderdetail.orderid, orderdetail.itemsid, 物品。id items_id, items.name items_name, 物品。价格items_price 从 订单, t_user, orderdetail, 项目 在哪里 orders.userid=t_user。id和orderdetail.orderid=订单。id和orderdetail。itemsId=items.id
为了方便映射,适当加上别名,上面就是写好的大sql、sql语这句是越来越大了,但不要害怕,待会做映射一个个来做,只要方法得提是很简单的。
2。编写映射文件分析:
现在的主表是用户,所以将用户的信息映射到用户中,一个用户可以创建多个订单,所以在用户属性中添加List
User.java代码如下:
公开课用户{ 私人int id; 私人字符串名称; 私人字符串pwd; 私人字符串地址; 私人生日日期; 私人ListordersList;//看这里用户创建的订单列表 }
Orders.java代码如下:
公共类订单{ 私人int id; 私人字符串注意; 私人约会日期时间; 私人字符串数量; 私人int标识; 私人用户用户; 私人ListordersDetails;//一个订单包括多个订单明细 >之前
OrdersDetail.java代码如下:
公开课OrdersDetail { 私人int id; 私人int orderId; 私人int itemsId; 私人物品物品;//一条订单明细包括一条商品信息 >之前到这里,pojo类之间的关系就搭建好了,接下来写mapper.xml
代码如下(注意看代码里的注释):
& lt; !——查询用户所购买的商品信息resultMap——比; & lt; resultMap id=癠serAndItemsResultMap”类型=癱om.djp.pojo.User”比; & lt; !——配置用户信息——比; & lt; id列=皍ser_id”属性=" id "/比; & lt;结果列=暗刂贰笔粜?暗刂贰?比; & lt;结果列=懊啤笔粜?"名称"/比; & lt;结果列=吧铡笔粜?吧铡?比; & lt; !——配置用户创建的订单信息,一个用户创建了多个订单——比; 减低=& lt;集合属性=皁rdersList”“com.djp.pojo.Orders”比; & lt; id列=癷d”属性=" id "/比; & lt;结果列=白⒁狻笔粜?"注意"/比; & lt;结果列=癲ateTime”属性=" dateTime "/比; & lt;结果列=氨晔丁笔粜?"标识"/比; & lt;结果列=笆笔粜?number/比; & lt; !——配置订单明细信息一个订单包含多个订单明细——比; 减低=& lt;集合属性=皁rdersDetails”“com.djp.pojo.OrdersDetail”比; & lt; id列=皁rderdetail_id”属性=" id "/比; & lt;结果列=皁rderId”属性=" orderId "/比; & lt;结果列=癷temsid”属性=" itemsid "/比; & lt; !——配置商品信息一个明细包括一个商品——比; & lt;协会财产="项目"将javaType=癱om.djp.pojo.Items”比; & lt; id列=癷tems_id”属性=" id "/比; & lt;结果列=癷tems_name”属性="名称"/比; & lt;结果列=癷tems_price”属性="价格"/比; & lt;/association> & lt;/collection> & lt;/collection> & lt;/resultMap> & lt; !——查询用户所购买的商品信息——比; & lt;选择id=" findUserAndItemsResultMap " resultMap=癠serAndItemsResultMap”比; 选择 订单。*, t_user。id user_id, t_user.address, t_user.name, t_user.brithday, orderdetail。id orderdetail_id, orderdetail.orderid, orderdetail.itemsid, 物品。id items_id, items.name items_name, 物品。价格items_price 从 订单, t_user, orderdetail, 项目 在哪里 orders.userid=t_user。id和orderdetail.orderid=订单。id和orderdetail。itemsId=items.id & lt;/select>基于mybatis高级映射多对多查询的实现