12.高级映射(一对多查询)

1.需求

查询订单及订单明细信息。

2.sql语句

确定主查询表:订单表
确定关联查询表:订单明细
在一对一查询基础上添加订单明细表关联即可

12.高级映射(一对多查询)_第1张图片

要求:
对orders的映射不能出现重复记录。
在orders.java中添加List orderDetails属性,最终将订单信息映射到orders中,订单所对应的订单明细映射到orders中的orderDetails属性中。

1)在Orders中添加List orderDetails属性

//订单明细 一对多查询使用
    private List orderDetails;

    public List getOrderDetails() {
        return orderDetails;
    }

    public void setOrderDetails(List orderDetails) {
        this.orderDetails = orderDetails;
    }

2)OrderCustomMapper.xml


    
    

3)定义resultMap


    
        
            
            
            
            

        
    

4)OrderCustomMapper.java

//查询订单(关联用户)及订单明细
    public List findOrdersAndOrderDetailResultMap() throws Exception;

5)测试

 @Test
    public void findOrdersAndOrderDetailResultMapTest() throws Exception {
        SqlSession sqlSession=sqlSessionFactory.openSession();
        //创建代理对象
        OrderCustomMapper orderCustomMapper= sqlSession.getMapper(OrderCustomMapper.class);
        //调用mapper的方法
        List list =orderCustomMapper.findOrdersAndOrderDetailResultMap();
        System.out.println(list);
        sqlSession.close();
    }
12.高级映射(一对多查询)_第2张图片

你可能感兴趣的:(12.高级映射(一对多查询))