mybatis0205 一对多查询 复杂
2015-10-12 21:07
253 查看
查询所有用户信息,关联查询订单及订单明细信息及商品信息,订单明细信息中关联查询商品信息
测试:
1.1sql 主查询表:用户信息 关联查询:订单、订单明细,商品信息 SELECT orders.*, user.username, user.sex , orderdetail.id orderdetail_id, orderdetail.items_num, orderdetail.items_id, items.name items_name, items.detail items_detail FROM orders, USER, orderdetail, items WHERE orders.user_id = user.id AND orders.id = orderdetail.orders_id AND items.id = orderdetail.items_id
pojo定义 在user.java(主表)中创建映射的属性:集合 List<Orders> orderlist 在Orders中创建映射的属性:集合List<Orderdetail> orderdetails 在Orderdetail中创建商品属性:pojo Items items
mapper.xml
<!-- 一对多查询使用reusltMap完成 查询用户及订单和订单明细,关联商品,的信息 --> <select id="findUserOrderDetail" resultMap="userOrderDetailResultMap" > SELECT orders.*, user.username, user.sex , orderdetail.id orderdetail_id, orderdetail.items_num, orderdetail.items_id, items.name items_name, items.detail items_detail FROM orders, USER, orderdetail, items WHERE orders.user_id = user.id AND orders.id = orderdetail.orders_id AND items.id = orderdetail.items_id </select>
将查询的数据库结果和User接收对象进行映射 <!-- 一对多查询,查询用户及订单明细和商品信息 --> <resultMap type="user" id="userOrderDetailResultMap"> <!-- 用户信息User映射 --> <id column="user_id" property="id"/>id是User的属性,user_id是查询的数据库表的列名 <result column="username" property="username"/> <result column="sex" property="sex"/> <!-- 订单信息,orderlist是User的属性 --> <collection property="orderlist" ofType="cn.itcast.mybatis.po.Orders"> <id column="id" property="id"/>id是Orders的属性,id是查询的数据库表的列名 <result column="user_id" property="userId"/> <result column="number" property="number"/> <result column="createtime" property="createtime"/> <result column="note" property="note"/> <!-- 订单明细映射 --> <collection property="orderdetails" ofType="cn.itcast.mybatis.po.Orderdetail"> <!-- id:关联信息订单明细的唯 一标识 property:Orderdetail的属性名 --> <id column="orderdetail_id" property="id"/> <result column="items_num" property="itemsNum"/> <result column="items_id" property="itemsId"/> <!-- 商品信息 --> <association property="items" javaType="cn.itcast.mybatis.po.Items"> <id column="item_id" property="id"/> <result column="items_name" property="name"/> <result column="items_detail" property="detail"/> </association> </collection> </collection> </resultMap>
1.1 mapper.java
测试:
// 一对多查询使用resultMap @Test public void testFindUserOrderDetail() throws Exception { SqlSession sqlSession = sqlSessionFactory.openSession(); // 创建mapper代理对象 OrdersMapperCustom ordersMapperCustom = sqlSession .getMapper(OrdersMapperCustom.class); // 调用方法 List<User> list = ordersMapperCustom.findUserOrderDetail(); System.out.println(list); }
相关文章推荐
- Ubuntu安装搜狗输入法Linux版
- StringUtils工具类用法
- Android中Menu的基本用法
- 界面切换动画
- 类声明和成员函数定义的分离
- Python标准库--os模块
- StringUtils工具类用法
- java反射与动态代理
- VS2010安装因net framework4.0无法安装以及Eclipse中ADB无法连天天接模拟器
- 关于youku嵌入式播放器浏览器白色边框的问题
- hibernate对象的状态的理解(第五天)
- Ant编译问题二:能够成功生成local..properties ,但是custom_rules 里边的任务没有执行
- yii学习笔记-代码流程
- Sublime Text 3083 Crack 破解注册码
- ANT+ 之【心率传感器设计】【下】
- 如何为wordpress 添加favicon
- 2010-10-12
- ISLR_t统计量
- linux inittab文件 6种启动模式
- linux下搭建J2EE开发环境以及IDE的安装