gpt4 book ai didi

Mybatis用注解写in查询的实现

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 34 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Mybatis用注解写in查询的实现由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

Mybatis注解写in查询

?
1
2
3
4
5
6
7
@ Select ( "<script>"
         + "SELECT * FROM table WHERE OrderNo IN "
         + "<foreach item='item' index='index' collection='list'      open='(' separator=',' close=')'>"
         + "#{item}"
         + "</foreach>"
         + "</script>" )
List<Map<String,Object>> selectdemo(@Param( "list" ) List<String> list);

这里foreach里面的collection值写@Param值.

Mybatis中IN语句查询、Mybatis中的foreach用法

1 需求

查询 用户 ID 为 101、102、103 的数据,参数是一个集合 。

2 在 SQL 语句中

?
1
select * from t_user where user_id in ( '101' , '102' , '103' )

3 在 Mybatis 中

你只需要 。

?
1
2
3
4
5
6
7
8
9
< select id= "selectUserByIdList" resultMap= "usesInfo" >
  SELECT
  *
  from t_user
  WHERE id IN
  <foreach collection= "idList" item= "id" index = "index" open = "(" close = ")" separator= "," >
    #{id}
  </foreach>
</ select >

对应的 Mapper中的接口如下 。

?
1
List<UserInfo> selectUserByIdList(@Param( "idList" )List idList)

  。

4 聊一下

foreach元素的属性主要有collection,item,index,open,separator,close.

4.1 collection 。

用来标记将要做foreach的对象,作为入参时 。

List对象默认用"list"代替作为键 。

数组对象有"array"代替作为键, 。

Map对象没有默认的键.

入参时可以使用@Param(“keyName”)来设置键,设置keyName后,默认的list、array将会失效.

如下的查询也可以写成如下 。

?
1
List<UserInfo> selectUserByIdList(List idList)
?
1
2
3
4
5
6
7
8
9
< select id= "selectUserByIdList" resultMap= "usesInfo" >
  SELECT
  *
  from t_user
  WHERE id IN
  <foreach collection= "list" item= "id" index = "index" open = "(" close = ")" separator= "," >
    #{id}
  </foreach>
</ select >

如果是数组类型 。

?
1
List<UserInfo> selectUserByIdList(Long[] idList)
?
1
2
3
4
5
6
7
8
9
< select id= "selectUserByIdList" resultMap= "usesInfo" >
  SELECT
  *
  from t_user
  WHERE id IN
  <foreach collection= "array" item= "id" index = "index" open = "(" close = ")" separator= "," >
    #{id}
  </foreach>
</ select >

4.2 。

item:集合中元素迭代时的别名,该参数为必选.

index:在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选 。

open:foreach代码的开始符号,一般是(和close=")"合用。常用在in(),values()时。该参数可选 。

separator:元素之间的分隔符,例如在in()的时候,separator=","会自动在元素中间用“,“隔开,避免手动输入逗号导致sql错误,如in(1,2,)这样。该参数可选.

close:foreach代码的关闭符号,一般是)和open="("合用。常用在in(),values()时。该参数可选.

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/weixin_42322648/article/details/106471902 。

最后此篇关于Mybatis用注解写in查询的实现的文章就讲到这里了,如果你想了解更多关于Mybatis用注解写in查询的实现的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com