select orders.*, t_user.address, t_user.name, t_user.brithday, orderdetail.id orderdetail_id, orderdetail.orderid, orderdetail.itemsid from orders, t_user, orderdetail where orders.userid=t_user.id AND orderdetail.orderid=orders.id;
public class Orders {
private int id;
private String note;
private Date dateTime;
private String number;
private int userId;
private User user;
private List<OrdersDetail> ordersDetails;//看这里
}
package com.djp.config.mapper;
import com.djp.pojo.Orders;
import com.djp.pojo.OrdersCustom;
import java.util.List;
public interface OrdersCustomMapper {
/**
* 查询订单关联查询用户信息和订单明细信息
*
* @return
*/
List<Orders> findOrderAndOrderDetailResultMap();
/**
* 查询订单关联查询用户信息
*
* @return
*/
List<OrdersCustom> findOrderUser() throws Exception;
/**
* 使用resultMap映射
*
* @return
* @throws RuntimeException
*/
List<Orders> findOrderUserResultMap() throws RuntimeException;
}
<?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.djp.config.mapper.OrdersCustomMapper">
<!--订单查询关联用户和订单明细的信息的resultMap-->
<resultMap id="orderAndOrderDetailResultMap" type="orders" extends="ordersUserResultMap">
<!--配置订单信息 使用继承下面的-->
<!--配置订单关联的用户信息 使用继承下面的-->
<!--配置订单关联的订单明细信息
一条订单关联查询出了多条明细,要使用collection进行映射
collection :对关联查询到多条记录映射到集合中
property:将关联查询到的多条记录映射到com.djp.pojo.Orders中的哪个属性
ofType:指定映射到list集合属性中的pojo的类型
-->
<collection property="ordersDetails" ofType="OrdersDetail">
<!--
id:订单明细的唯一标示
property:将订单明细的唯一标示映射到com.djp.pojo.OrdersDetail中的哪个属性
-->
<id column="orderdetail_id" property="id"/>
<result column="orderid" property="orderId"/>
<result column="itemsid" property="itemsId"/>
</collection>
</resultMap>
<!--查询订单明细关联查询用户信息和订单明细信息的statement-->
<select id="findOrderAndOrderDetailResultMap" resultMap="orderAndOrderDetailResultMap">
select
orders.*,
t_user.address,
t_user.name,
t_user.brithday,
orderdetail.id orderdetail_id,
orderdetail.orderid,
orderdetail.itemsid
from
orders,
t_user,
orderdetail
where
orders.userid=t_user.id AND orderdetail.orderid=orders.id
</select>
<!--订单查询关联用户的resultMap
将整个查询结果映射到com.djp.pojo.Orders中
-->
<resultMap id="ordersUserResultMap" type="com.djp.pojo.Orders">
<!--配置映射的订单信息
result:普通列
id:指定查询列中的唯一标示,订单信息中的唯一标示,如果有多个列组成多个唯一标示,配置多个id
column:订单信息的唯一标示
property:订单信息的唯一标示,列所映射到Orders中的哪个属性
-->
<id column="id" property="id"/>
<result column="note" property="note"/>
<result column="dateTime" property="dateTime"/>
<result column="number" property="number"/>
<result column="userId" property="userId"/>
<!--配置订单关联的用户信息
association:用于映射关联查询单个用户的信息
property:将要关联查询的用户信息映射到orders中的哪个属性
javaType:指定的类型,可以使用别名
-->
<association property="user" javaType="user">
<!--
id :关联查询用户的唯一标示
column:指定表示用户信息的列
property:对应user.java中的哪个属性
-->
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="pwd" property="pwd"/>
<result column="address" property="address"/>
<result column="brithday" property="brithday"/>
</association>
</resultMap>
<!-- 查询订单关联查询用户信息 使用resultMap-->
<select id="findOrderUserResultMap" resultMap="ordersUserResultMap">
select orders.*,t_user.address,t_user.name,t_user.brithday from orders, t_user where orders.userid=t_user.id
</select>
<!--查询订单关联查询用户信息-->
<select id="findOrderUser" resultType="OrdersCustom">
select orders.*,t_user.address,t_user.name,t_user.brithday from orders, t_user where orders.userid=t_user.id
</select>
</mapper>
/**
* 查询订单关联查询用户信息和订单明细信息
*/
@Test
public void testFindOrderAndOrderDetailResultMap() {
try {
System.out.println("start.................");
//通过得到的SqlSessionFactory打开回话sqlSession
SqlSession sqlSession = SqlSessionFactory.openSession();
//通过会话得到用户的代理
OrdersCustomMapper ordersCustomMapper = sqlSession.getMapper(OrdersCustomMapper.class);
List<Orders> list = ordersCustomMapper.findOrderAndOrderDetailResultMap();
for (Orders item : list) {
System.out.println("订单+用户+订单明细:"+item);
}
} catch (Exception e) {
e.printStackTrace();
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有