mybatis使用resultMap实现多对多查询 (需求:商品信息和订单明细有多对多的关系)
2017-05-07 13:58
741 查看
因为商品信息和订单明细有外键关联,
在订单明细po类添加商品信息属性
目标:resultMap将订单明细映射到orders.java中的List<Orderdetail> orderdetails,将商品信息映射到Orderdetail.java中商品属性中(Items
items)。
Mapper.xml
1.定义resultMap
<!--
多对多映射
-->
<resultMap type="orders" id="manytomany" >
<collection property="orderdetail" ofType="com.mo.pojo.Orderdetail">
<!--
订单明细 与 商品信息 进行 多对多 的映射
column:字段名
property:po类属性
id:唯一的字段,一般为主键
result:普通字段
-->
<id column="orderdetail_id" property="id"/>
<result column="item_id" property="item_id"/>
<result column="item_num" property="item_num"/>
<result column="item_price" property="item_price"/>
<!-- 映射商品信息,单个po类,collection集合中一个元素的一个属性 -->
<association property="items" javaType="com.mo.pojo.Items">
<id column="item_id" property="id"/>
<result column="item_name" property="item_name"/>
<result column="item_price_price" property="item_price"/>
<result column="item_detail" property="item_detail"/>
</association>
</collection>
</resultMap>
2.statement编写
<select id="manytomany" resultMap="manytomany">
SELECT
orders.*,
orderdetail.id orderdetail_id,
orderdetail.item_id,
orderdetail.item_num,
orderdetail.item_price,
items.item_name,
items.item_price item_price_price,
items.item_detail
FROM
orders,
orderdetail,
items
WHERE
orders.id = orderdetail.orders_id
AND
orderdetail.item_id = items.id
</select>
3.Mapper.java的编写
public interface OrdersMapperCustom {
List<Orders> manytomany();
}
结果
在订单明细po类添加商品信息属性
public class Orderdetail { private int id; private int orders_id; private int item_id; private int item_num; private Float item_price; //商品的信息 private Items items;
目标:resultMap将订单明细映射到orders.java中的List<Orderdetail> orderdetails,将商品信息映射到Orderdetail.java中商品属性中(Items
items)。
Mapper.xml
1.定义resultMap
<!--
多对多映射
-->
<resultMap type="orders" id="manytomany" >
<collection property="orderdetail" ofType="com.mo.pojo.Orderdetail">
<!--
订单明细 与 商品信息 进行 多对多 的映射
column:字段名
property:po类属性
id:唯一的字段,一般为主键
result:普通字段
-->
<id column="orderdetail_id" property="id"/>
<result column="item_id" property="item_id"/>
<result column="item_num" property="item_num"/>
<result column="item_price" property="item_price"/>
<!-- 映射商品信息,单个po类,collection集合中一个元素的一个属性 -->
<association property="items" javaType="com.mo.pojo.Items">
<id column="item_id" property="id"/>
<result column="item_name" property="item_name"/>
<result column="item_price_price" property="item_price"/>
<result column="item_detail" property="item_detail"/>
</association>
</collection>
</resultMap>
2.statement编写
<select id="manytomany" resultMap="manytomany">
SELECT
orders.*,
orderdetail.id orderdetail_id,
orderdetail.item_id,
orderdetail.item_num,
orderdetail.item_price,
items.item_name,
items.item_price item_price_price,
items.item_detail
FROM
orders,
orderdetail,
items
WHERE
orders.id = orderdetail.orders_id
AND
orderdetail.item_id = items.id
</select>
3.Mapper.java的编写
public interface OrdersMapperCustom {
List<Orders> manytomany();
}
结果
相关文章推荐
- mybatis使用resultMap实现一对多查询 (需求:查询订单以及订单明细)
- MyBatis Review——使用resultType和resultMap实现一对一查询
- MyBatis Review——使用resultType和resultMap实现一对一查询
- mybatis 使用resultMap实现关联数据的查询(association 和collection )
- mybatis简单查询,resultType及resultMap查询使用
- mybatis之resultMap实现一对一查询
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- 使用resultMap实现ibatis复合数据结构查询(1.多重属性查询;2.属性中含有列表查询)
- Mybatis使用ResultType实现一对一关系详解(二)
- 使用resultMap实现ibatis复合数据结构查询(1.多重属性查询;2.属性中含有列表查询)
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- MyBatis之使用resultMap实现高级映射
- mybatis 一对一关系取值association 通过resultMap实现
- Mybatis---查询使用resultType和resultMap的区别
- mybatis进阶(3)--一对一查询(使用resultMap)
- MyBatis之使用resultMap实现高级映射
- MyBatis框架核心之(五)注解使用resultMap及多表查询
- MyBatis框架核心之(四)Mapper文件使用resultMap及多表查询
- MVC3学习第九章 葵花点穴手之势如闪电----MVC3下实现用户信息的查询以及通过实体模型建立商品和类别的主外键关系