实体类: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();
}