MyBatis中collection标签的使用

MyBatis中<collection>标签的使用

使用<collection>进行一对多的查询

下面的栗子要输出每个班级和其学生列表
表结构和数据:
class表:

+------+
| c_id |
+------+
|    1 |
|    2 |
|    3 |
+------+

student表:

+------+--------+-------+
| s_id | s_name | s_cid |
+------+--------+-------+
|    1 | sc     |     1 |
|    2 | ljl    |     1 |
|    3 | xh     |     2 |
|    4 | wxp    |     3 |
+------+--------+-------+

对应的Javabean:
student:

public class Student {
    private int sId;
    private String sName;
    //get(),set()...
}

class:

public class Clazz {
    private int cId;
    private List<Student> cStu;
    //get(),set()...
}

ClazzMapper接口:

public interface ClazzMapper {
    List<Clazz> queryClazzList();
}

ClazzMapper.xml文件:

...
<resultMap id="cl" type="com.example.domain.Clazz">
   <result property="cId" column="c_id"/>
   <collection property="cStu" ofType="com.example.domain.Student">
       <result property="sId" column="s_id"/>
       <result property="sName" column="s_name"/>
   </collection>
</resultMap>
<select id="queryClazzList" resultMap="cl">
   SELECT c.c_id,s.s_id,s.s_name 
   FROM class c 
   LEFT JOIN student s 
   ON c.c_id=s.s_cid
</select>
...

打印查询结果:

Clazz{cId=1, cStu=[Student{sId=1, sName='sc'}, Student{sId=2, sName='ljl'}]}, 
Clazz{cId=2, cStu=[Student{sId=3, sName='xh'}]}, 
Clazz{cId=3, cStu=[Student{sId=4, sName='wxp'}]}
  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值