需求:查询订单信息,关联查询订单明细信息和用户信息 一对多 resultMap
sql:
主信息:orders 从信息:orderdetail user
select
orders.id,
orders.user_id,
orders.number,
user.username,
user.sex ,
orderdetail.id detailId,
orderdetail.items_id ,
orderdetail.items_num
from orders , user , orderdetail
where
orders.user_id = user.id and orders.id = orderdetail.orders_id
1修改扩展类
private List<Orderdetail> detaiList ;
public List<Orderdetail> getDetaiList() {
return detaiList;
}
public void setDetaiList(List<Orderdetail> detaiList) {
this.detaiList = detaiList;
}
2映射文件
<resultMap type="cn.itcast.po.OrderExt" id="OrderAndDetailRstMap" extends="OrderAndUserRstMap">
<!-- 订单明细信息 -->
<collection property="detaiList" ofType="cn.itcast.po.Orderdetail">
<id column="detailId" property="id"/>
<result column="items_id" property="itemsId"/>
<result column="items_num" property="itemsNum"/>
</collection>
</resultMap>
<select id="findOrderAndDetailRstMap" resultMap="OrderAndDetailRstMap">
select
orders.id,
orders.user_id,
orders.number,
user.username,
user.sex ,
orderdetail.id detailId,
orderdetail.items_id ,
orderdetail.items_num
from orders , user , orderdetail
where
orders.user_id = user.id and orders.id = orderdetail.orders_id
</select>
3OrderMapper接口
public List<OrderExt> findOrderAndDetailRstMap();
4测试
@Test
public void testFindOrderAndDetailRstMap() {
SqlSession sqlSession = sqlSessionFactory.openSession();
OrdersMapper ordersMapper = sqlSession.getMapper(OrdersMapper.class);
List<OrderExt> list = ordersMapper.findOrderAndDetailRstMap();
sqlSession.close();
}