当前位置: 首页 > news >正文

Mybatis中使用in()查询

这篇文章我会演示几种mybatis中使用in查询的方式。

1 数组、字符串

2 集合

3 使用Myabtis-plus框架的条件构造器来实现

我们在mysql中使用in查询的方式是这样的

 那在mybatis中我们使用<foreach>标签来实现包含查询

1 使用数组方式

Mapper:

 Mapper.xml:

<select id="studentList" resultType="com.ywt.springboot.model.Student">
        select *
        from student
        where id in
        <foreach collection="array" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>

 :foreach中的 collection标签中为array,item是遍历ids中的每个元素,默认为item可以自定义。

测试类:

我们可以使用字符串来接收参数,使用逗号分隔每个参数,然后把分隔后的参数放到集合中。

 

 2 使用List集合的方式

Mapper:

 Mapper.xml

<select id="studentList" resultType="com.ywt.springboot.model.Student">
        select *
        from student
        where id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>

 使用list方式collection的value必须为list

 测试:

3 第三种我们使用Mybatis-plus框架的条件构造器来进行查询

@Test
    void Test(){
        QueryWrapper<Student> qw = new QueryWrapper<>();
        qw.in("id",7,9);
        List<Student> students = studentMapper.selectList(qw);
        System.out.println(students.toString());
    }

条件构造器相关的方法在我另一篇博客,总结了常用的多种方法,以供大家参考:

Mybatis-plus的条件构造器详细使用教程_保加利亚的风的博客-CSDN博客_mybatis构造器

 测试结果:

[Student(id=7, name=蔡徐坤, age=18), Student(id=9, name=金科徐, age=18)]

相关文章:

  • 关于笔记本电脑插上网线没反应的解决方案
  • 第16天-性能压测:压力测试,性能监控,优化QPS,Nginx动静分离
  • selenium + python自动化测试环境搭建
  • 金融监管科技业务中的AI应用:上市公司公告信息风险识别
  • Mac 安装Maven的几种方法和操作步骤
  • 超薄网络变压器(百兆千兆万兆)如何选型?及相关产品集成功能分类
  • keil调试专题篇
  • alter table column 列属性
  • 数据库面试题——锁
  • MySQL:索引与事物
  • springboot Aspect切面
  • 【Python】P1 Python 基础语法
  • Windows Server 2022 中文版、英文版下载 (updated Mar 2023)
  • 智能灯泡一Homekit智能家居系列
  • Java设计模式(二)——工厂模式
  • [译]Python中的类属性与实例属性的区别
  • 「译」Node.js Streams 基础
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • Java|序列化异常StreamCorruptedException的解决方法
  • JavaScript 基本功--面试宝典
  • Javascript 原型链
  • Java程序员幽默爆笑锦集
  • java多线程
  • js作用域和this的理解
  • Promise初体验
  • Python 基础起步 (十) 什么叫函数?
  • spring boot下thymeleaf全局静态变量配置
  • windows下如何用phpstorm同步测试服务器
  • 不上全站https的网站你们就等着被恶心死吧
  • 从tcpdump抓包看TCP/IP协议
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 将 Measurements 和 Units 应用到物理学
  • 前嗅ForeSpider教程:创建模板
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 深入浏览器事件循环的本质
  • 什么是Javascript函数节流?
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​如何防止网络攻击?
  • (0)Nginx 功能特性
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (30)数组元素和与数字和的绝对差
  • (八)Flask之app.route装饰器函数的参数
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)Linq学习笔记
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NetCore项目nginx发布
  • .NET中统一的存储过程调用方法(收藏)
  • .ui文件相关
  • []指针
  • [ARM]ldr 和 adr 伪指令的区别
  • [C++]命名空间等——喵喵要吃C嘎嘎
  • [CQOI 2010]扑克牌