关于mybatis中的<collection>两种用法我想说

概述

mybatis中的两种用法

  1. 内嵌ResultMap
  2. 内嵌Query

以下介绍都会围绕场景:一片博客blog有多个标签tag来进行。

内嵌ResultMap

用法如下

<collection property="tags" ofType="com.blog.po.Tag">
          <id property="id" column="tagid" />
          <result property="name" column="tagname" />
</collection>

javaType可以省略

column中的值可以理解为别名。

为什么要有别名?

要查询指定blog及其关联的tag,需要用到三个表,表blog,表blog_tag,表tag。三个表中都有id,为了加以区分我们在设计查询语句的时候都会为其设定别名,比如下列sql

SELECT   
			b.id bid,
			tag
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用<foreach>标签传递List<String>参数时,可以使用以下两种方式。 第一种方式是在Mapper接口的方法参数前面添加@Param注解,并将List<String>参数命名为list。例如: 引用\[1\]的示例代码: ```java public List<Map<String, Object>> dynamicForeachTest(@Param("list") List<String> ids); ``` 引用\[1\]的示例代码: ```xml <select id="dynamicForeachTest" resultType="java.util.Map"> select * from t_blog where id in <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> </select> ``` 第二种方式是直接将List<String>参数命名为ids,不需要添加@Param注解。例如: 引用\[2\]的示例代码: ```java public List<Map<String, Object>> dynamicForeach3Test(List<String> ids, @Param("contractId") String contractId); ``` 引用\[2\]的示例代码: ```xml <select id="dynamicForeach3Test" resultType="java.util.Map"> select * from xxx where cid=#{contractId} and fID in <foreach collection="ids" item="item" open="(" separator="," close=")"> #{item} </foreach> </select> ``` 无论使用哪种方式,都可以通过<foreach>标签遍历List<String>参数的每个元素,并将其作为SQL语句的参数进行查询。 #### 引用[.reference_title] - *1* *2* *3* [MyBatisin <foreach>的使用](https://blog.csdn.net/xujunkai66/article/details/81413818)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值