返回顶部
首页 > 资讯 > 后端开发 > Python >Mybatis用注解写in查询的实现
  • 236
分享到

Mybatis用注解写in查询的实现

2024-04-02 19:04:59 236人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

mybatis注解写in查询 @Select("<script>" + "SELECT * FROM table WHERE Ord

mybatis注解写in查询


@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 语句中


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

3 在 Mybatis 中

你只需要


<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中的接口如下


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将会失效。

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


List<UserInfo> selectUserByIdList(List idList)

<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>

如果是数组类型


List<UserInfo> selectUserByIdList(Long[] idList)

<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()时。该参数可选。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Mybatis用注解写in查询的实现

本文链接: https://lsjlt.com/news/130337.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Mybatis用注解写in查询的实现
    Mybatis注解写in查询 @Select("<script>" + "SELECT * FROM table WHERE Ord...
    99+
    2024-04-02
  • Mybatis怎么用注解写in查询
    这篇文章主要为大家展示了“Mybatis怎么用注解写in查询”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Mybatis怎么用注解写in查询”这篇文章吧。Mybatis注解写in查询@Selec...
    99+
    2023-06-20
  • Mybatis List列表In查询实现的注意事项说明
    目录下面是一个演示示例下面开始分析源代码(笔记使用的是Mybatis 3.0.5版本)先找到Mybatis执行SQL配置解析的入口分析源码如下又一个发现,见源代码如下在使用这个功能是...
    99+
    2024-04-02
  • mybatis-plus 使用In查询
    Wrapper queryWrapper = Wrappers.lambdaQuery() .in(ObjectUtil.isNotEmpty(stuList), Student::getStuId, stuL...
    99+
    2023-09-08
    mysql mybatis sql
  • mybatis如何实现in传入数组查询
    目录mybatis实现in语句传入数组1.数据样式2.实现方法3.sql语句mybatis数组传递注意事项1.直接传递数组2.将数字放入map中传递mybatis实现in语句传入数组...
    99+
    2024-04-02
  • mybatis如何使用注解实现一对多关联查询
    mybatis 注解实现一对多关联查询 @Select("select id,mockexam_section as section,id as sectionId" ...
    99+
    2024-04-02
  • mybatis in 查询使用String做条件
    在使用 mybaits 进行 in 查询时 如果传入参数是List或者Array,则直接用foreach 如果参数是String类型的使用in (${xxxx}),不进行编译,直接放进查询条件 例如 String param = ...
    99+
    2021-11-17
    mybatis in 查询使用String做条件
  • mybatis in查询条件过长的解决方案
    目录mybatis in查询条件过长的解决方法1:分次查询,将参数且分割成多个短的查询后合并方法2:xml文件中编写sqlmybatis大于1000的in查询的解决论证如下解决办法m...
    99+
    2024-04-02
  • myBatis如何实现查询
    这篇文章主要为大家展示了“myBatis如何实现查询”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“myBatis如何实现查询”这篇文章吧。把查询的字段,查询的条...
    99+
    2024-04-02
  • Mybatis实现分页查询
    一. 简单分页查询——limit 使用select查询时,如果结果集数据量较大,一个页面难以处理,就会采用分页查询。 分页查询,就是从结果集中拿出指定的第n页到第m页的数据来显示。 // limit分页公式 // currentP...
    99+
    2023-09-12
    mybatis java mysql
  • MyBatis实现模糊查询
    1.第一种方式 第一种方式:在java程序中,把like的内容组装好,把这个内容传入到sql语句 我们先在dao接口中定义一个方法 /ke的第一种方式List selectLikeOne(@Param("name") S...
    99+
    2023-10-20
    mybatis java mysql Powered by 金山文档
  • MyBatis的模糊查询mapper.xml的写法讲解
    目录MyBatis模糊查询mapper.xml的写法1.直接传参2.针对MySQL数据库的语句3.适用于所有数据库的则采用MyBatis的bind元素MyBatis在xml中模糊查询...
    99+
    2024-04-02
  • MyBatis多表查询和注解开发
    文章目录 Mybatis多表查询一对一查询一对一查询的模型一对一查询的语句创建Order和User实体创建OrderMapper接口配置OrderMapper.xml测试结果 一对多查询一对多查询的模型一对多查询的语句修改Us...
    99+
    2023-08-19
    mybatis java mysql 原力计划
  • mybatis使用collection嵌套查询的实现
    在开发中,可能会遇到一对多的关系,这个时候,一条sql语句就难以胜任这个任务了。只能先执行一条sql,然后根据返回的结果,再做一次sql关联查询,这个时候,使用mybatis的col...
    99+
    2024-04-02
  • mybatis plus实现条件查询
    目录一、wapper介绍二、常用的条件方法1. gt 表示 >2. le 表示 <=3. lt&nb...
    99+
    2024-04-02
  • MyBatis-Plus中SimpleQuery查询实现
    对list查询后的结果用Stream流进行了一些封装,使其可以返回一些指定结果,简洁了api的调用,这种调用方式不用注入bean、不用注入bean、不用注入bean,通过实体类cla...
    99+
    2022-11-13
    MyBatis-Plus SimpleQuery查询 MyBatis-Plus SimpleQuery
  • Mybatis-Plus实现分页查询
    Mybatis-Plus实现分页查询 文章目录 Mybatis-Plus实现分页查询1.1技术概述1.2技术详述1.2.1配置分页插件1.2.2自定义分页1、如果你的mapper没有继承BaseMapper2、如果你的mapper继...
    99+
    2023-08-17
    mybatis java spring boot
  • MyBatis-Plus 条件查询器的实现
    目录一、常用注解1.1 @TableName1.2 @TableId1.3 @TableField1.4 @TableLogic二、条件构造器Wrapper2.1 QueryWrap...
    99+
    2024-04-02
  • Mybatis联合查询的实现方法
    目录1、级联属性封装结果集实现2、分步查询方法3、级联属性封装结果集4、分步查询数据库表结构 department employee 要求一 现在的要求是输入 id 把 em...
    99+
    2024-04-02
  • MyBatis@Param注解的实现
    先说结论: 当输入参数只有一个且没有使用@Param注解时,MyBatis会直接传递这个参数;当输入参数多于一个,或者使用了@Param注解时,MyBatis会将参数封装在Map中传...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作