MyBatis传入参数为数组、list的写法

本文详细解析了MyBatis框架中foreach标签的使用方法,包括如何利用foreach实现SQL条件循环,构建IN条件语句,以及在批量操作场景下的应用。文章提供了具体的代码示例,展示了传入List和数组作为参数时的处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.主要用到了一个foreach标签实现sql条件的循环,完成类似批量的sql。

foreach是对一个集合进行遍历,通常是在构建 IN 条件语句的时候。
foreach元素的属性主要有 item,index,collection,open,separator,close。
item:表示集合中每一个元素进行迭代时的别名
index:用于表示在迭代过程中,每次迭代到的位置
collection:指定传入参数的类型
open:开始时拼接的字符串
separator:表示在每次进行迭代之间以什么符号作为分隔符
close:结束时拼接的字符串

(1)传入参数为list

List<FshEstate> getEstateByEstateId(List<String> estateIds);
<select id="getEstateByEstateId" parameterType="java.util.List" resultType="com.model.mpublic.FshEstate">
        SELECT *
        FROM fsh_estate est
        WHERE est.estate_id in
        <foreach collection="list" item="estateId" index="index"
                 open="(" close=")" separator=",">
            #{estateId}
        </foreach>
    </select>

(2)传入参数为数组:

List<FshEstate> getEstateByEstateId(String[] estateIds);
<select id="getEstateByEstateId" parameterType="java.util.List" resultType="com.model.mpublic.FshEstate">
        SELECT *
        FROM fsh_estate est
        WHERE est.estate_id in
        <foreach collection="array" item="estateId" index="index"
                 open="(" close=")" separator=",">
            #{estateId}
        </foreach>
    </select>

注意:
(1)如果传入的是单参数且参数类型是一个List的时候,collection属性值为list .
(2)如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array .

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菜鸟驿站ㅤ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值