mybatis一对多查询

实体类:Stu.java

public class Stu implements Serializable {
    private Integer id;
    private String name;
    private Integer age;
    private Double score;
    private Address address_id;
}

实体类:address.java

public class Address implements Serializable {
    private Integer id;
    private String des;
    private List<Stu> stu;
}

映射配置文件:

<?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="dao.IAddressDao">

    <resultMap id="addressStu" type="address">
        <id column="id" property="id"/>
        <result column="des" property="des"/>
        <collection property="stu" ofType="stu">
            <id column="sid" property="id"/>
            <result column="name" property="name"/>
            <result column="age" property="age"/>
            <result column="score" property="score"/>
        </collection>
    </resultMap>
    
    <select id="find" resultMap="addressStu">
        select * from address a left join stu s on a.id = s.address_id;
    </select>
</mapper>

测试方法:

	@Test
    public void find() throws Exception{
        InputStream inputStream = Resources.getResourceAsStream("SqlMybatisCon.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        IAddressDao iAddressDao = sqlSession.getMapper(IAddressDao.class);
        List<Address> addresses = iAddressDao.find();

        for (Address a:addresses) {
            System.out.println("--------------------------------------");
            System.out.println(a.toString());
            List<Stu> stuList = a.getStu();
            for (Stu stu:stuList){
                System.out.println(stu.toString());
            }
        }
        inputStream.close();
        sqlSession.close();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值