mybatis之多对多映射查询(十二)
来源:互联网 发布:淘宝女童秋装 编辑:程序博客网 时间:2024/05/13 10:21
多对多映射就是一对多映射的特例
需求
查询用户信息,关联查询该用户购买的商品信息
sql语句
SELECT u.username, u.sex , u.address, o.*, od.id od_id, od.orders_id, od.items_id, i.id i_id, i.name, i.priceFROM orders o LEFT JOIN USER u ON u.id = o.user_id LEFT JOIN orderdetail od ON o.id = od.orders_id LEFT JOIN items i ON i.id = od.items_id
修改pojo类
在User类中添加List ordersList;
public class User { private int id; private String username;// 用户姓名 private String sex;// 性别 private Date birthday;// 生日 private String address;// 地址 private List<Orders> ordersList; //set/get方法省略}
在Orders类中添加List OrderdetailList;
public class Orders { private Integer id; private Integer userId; private String number; private Date createtime; private String note; private List<Orderdetail> OrderdetailList; //set/get方法省略}
在Orderdetail中添加Items item;
public class Orderdetail { private Integer id; private Integer ordersId; private Integer itemsId; private Integer itemsNum; private Items item; //set/get方法省略}
OrdersMapper接口
public interface OrdersMapper { List<User> findUserAndItem();}
OrdersMapper.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.test.mapper.OrdersMapper"> <resultMap type="com.test.domain.User" id="findUserAndItem"> <!-- 用户 --> <id property="id" column="user_id"/> <result property="username" column="username"/> <result property="sex" column="sex"/> <result property="address" column="address"/> <!-- 订单 --> <collection property="ordersList" ofType="com.test.domain.Orders"> <id column="id" property="id"/> <result column="user_id" property="userId"/> <result column="number" property="number"/> <result column="createtime" property="createtime"/> <result column="note" property="note"/> <!-- 订单明细 --> <collection property="OrderdetailList" ofType="com.test.domain.Orderdetail"> <id property="id" column="od_id"/> <result property="itemsId" column="items_id"/> <result property="ordersId" column="orders_id"/> <result property="itemsNum" column="items_num"/> <!-- 商品 --> <association property="item" javaType="com.test.domain.Items"> <id property="id" column="i_id"/> <result property="name" column="name"/> <result property="price" column="price"/> </association> </collection> </collection> </resultMap> <select id="findUserAndItem" resultMap="findUserAndItem"> SELECT u.username, u.sex , u.address, o.*, od.id od_id, od.orders_id, od.items_id, i.id i_id, i.name, i.price FROM orders o LEFT JOIN USER u ON u.id = o.user_id LEFT JOIN orderdetail od ON o.id = od.orders_id LEFT JOIN items i ON i.id = od.items_id </select></mapper>
测试代码
@Test public void test_02(){ SqlSession sqlSession = sqlSessionFactory.openSession(); OrdersMapper mapper = sqlSession.getMapper(OrdersMapper.class); List<User> userList = mapper.findUserAndItem(); System.out.println(userList); }
阅读全文
0 0
- mybatis之多对多映射查询(十二)
- 【Mybatis】---高级映射之多对多查询
- MyBatis高级映射之多对多查询
- 【MyBatis学习10】高级映射之多对多查询
- 【MyBatis学习10】高级映射之多对多查询
- 【MyBatis学习10】高级映射之多对多查询
- Mybatis学习(09)-高级映射之多对多查询
- 【MyBatis学习10】高级映射之多对多查询
- MyBatis 关联映射之多对多
- MyBatis 关联映射之多对多
- MyBatis之多对多关联查询
- Mybatis高级映射多对多查询
- 【Mybatis】---高级映射之一对多查询
- mybatis之一对多映射查询(十一)
- MyBatis高级映射之一对多查询
- Hibernate之多对多映射
- MyBatis之多对一关联查询
- mybatis性能优化二之多对多查询:用一次请求解决n次请求查询
- CCF 高速公路
- 【ZZULIOJ】 2170 DML和回文
- Elastic Search权威指南 第三章 搜索
- 20170814-20170820
- 文件上传类
- mybatis之多对多映射查询(十二)
- Elastic Search权威指南 第四章 映射与分析
- hdu 6158 The Designer
- 使用URLConnection实现post表单提交
- Web网页实现计算器功能
- HDU 4937Lucky Number
- u-boot移植--3、DM9000网卡移植
- Elastic Search权威指南 第五章 结构化查询
- 不要62