userMapper.xml:
<select id="getUserList" resultMap="familyResult">
select
<include refid="useridNames" /><!-- 引用sql id -->
from userinfo
</select>
<resultMap id="familyResult" type="com.chenjun.Family">
<collection property="users" ofType="com.chenjun.User"<span style="color:#FF0000;"> resultMap="getUserLists"</span>> <!--将查到的结果一条记录一条记录地封装到user中,得到users值,注入到Family中-->
<id property="id" column="id" /> <!--这两行也可以抽出来,单独作为一个映射上面红色部分-->
<result property="name" column="name" />
</collection>
</resultMap>
<!-- 定义sql片断,用于重用 -->
<sql id="useridNames">id,name</sql>
dao:
public Family getUserList();
测试代码:
private static void printUsers(SqlSession sqlSession, UserDao userDao)
{
Family family = userDao.getUserList();
for (User user : family.getUsers())
{
System.out.println(user.getId() + ":" + user.getName());
}
}
执行结果:
43:张四
21:张五
9:ameraca
8:张三