MySQL where in后面参数格式 java entity sql in

本文介绍在Java的SpringBoot框架下,如何在MyBatis中使用动态SQL实现带有IN子句的查询,特别关注如何正确传递和处理数组或集合类型的参数。

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

前述:

          我是学PHP的,让领导生生逼成java,刚开始java不是很熟练,所以能用sql搞定的坚决不用java。久而久之养成这种习惯。java  中 sql  中的where in 后面值如何给出。PHP是直接给数组格式的参数就行,但是java我试了直接给数组或者list都没有成功。

代码:

          以下是在springboot框架下中的entity中直接写的sql

1、in 后面的参数需要循环给出。

@Select("<script>"
            + "SELECT * from `goods` g WHERE community_id  IN"
            + "<foreach item='communityId' collection='communityIds' open='(' separator=',' close=')'>"
            + "#{communityId}"
            + "</foreach>"
            + " ORDER BY scan_num DESC;"
            + "</script>")
    List<Map<String,Object>> findGoodsList(@Param("communityIds") String [] communityIds);

代码解释:

1、参数1:@Param("communityIds") String [] communityIds   :格式一目了然是数组格式;也可以是任意可循环的格式。

2、循环中的collection属性值对应的是参数一。

3、循环中的item属性值,可以自定义任何符合参数命名的名字。但必须与#{communityId}中形参对应;                

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值