ssm框架多表查询多对多的方法

多表查询多对多的查询方法和一对多的查询方法相同!!!

注意事项;

  1. 不用纠结中间表,但是中间表中不能有除了外键列的其他数据,因为写了也没用,查询不到,把需要展示的字段都写在实体双方;
  2. 新增的集合属性需要设置get set 方法,要不然前台获取不到对方的值
  3. 在多对多的查询中,尽量不要使用连接查询,改为使用子查询,避免出现分页条数不对的问题;
  4. 可以选择双方的任一方写查询语句,得到的结果是相同的,所以不用纠结怎么糅合到一个查询方法里

1.连接查询

 
<select id="getAllWithDrugs" resultMap="JoinDrug">
        SELECT l.liveid,l.livename,d.drugName,l.totalNeed,l.alreadyGive,l.stillNeed
         FROM liveh l INNER JOIN drugpeoplemiddle m ON l.liveid=m.peopleid INNER JOIN drugh d ON m.drugid=d.drugid

</select>
<!--连接查询-->
  <resultMap id="JoinDrug" type="com.zhao.pojo.Liveh" extends="BaseResultMap">
    <collection property="drugs" resultMap="com.zhao.mapper.DrughMapper.BaseResultMap"></collection>
  </resultMap>

 2.子查询

<select id="getAllWithDrugs" resultMap="JoinDrug">
        SELECT l.liveid,l.livename,d.drugName,l.totalNeed,l.alreadyGive,l.stillNeed
         FROM liveh l INNER JOIN drugpeoplemiddle m ON l.liveid=m.peopleid INNER JOIN drugh d ON m.drugid=d.drugid

</select>
  <!--<resultMap id="JoinDrug" type="com.zhao.pojo.Liveh" extends="BaseResultMap">
    <collection property="drugs" resultMap="com.zhao.mapper.DrughMapper.BaseResultMap"></collection>
  </resultMap>-->
//子查询
  <resultMap id="JoinDrug" type="liveh" extends="BaseResultMap">
    <collection property="drugs" ofType="drugh" select="com.zhao.mapper.DrughMapper.selectByPrimaryKey" column="liveid"></collection>
  </resultMap>

关于如何使用子查询的方法我放到另一篇博客里,目的是为了帮助那些查询条数不对的朋友更快的找到答案

给点个赞哦

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

塔◎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值