如果是List类型的String,例如:List这种类型的,就直接放值就可以了,本文讲的是当你查询到的是一个list集合如何遍历取值,否则要写sql和接口就显得很麻烦。

步骤如下:

//查询到list集合

List userList = userService.selectById(id);

//结果集

List resultList = new ArrayList<>();

//遍历集合取值

userList .forEach(item->{

resultList.add(item.getYouNeedId());

});

//条件构造器in上手使用

QueryWrapper qw = new QueryWrapper<>();

qw.in("you_need_id", resultList);

//这里有个分页的查询,你也可以不用分页,用mybatisplus里面封装的其他方法

IPage userIPage = userMapper.selectPage(page, qw);

//返回查询结果,getRecords也是mybatisplus里面封装的方法

return contractRecordIPage.getRecords();

下面看下Mybatis使用IN语句查询

简介

在SQL语法中如果我们想使用in的话直接可以像如下一样使用:

select * from HealthCoupon where useType in ( '4' , '3' )

但是如果在MyBatis中的使用in的话,像如下去做的话,肯定会报错:

Map selectByUserId(@Param("useType") String useType)

select * from HealthCoupon where useType in (#{useType,jdbcType=VARCHAR})

其中useType="2,3";这样的写法,看似很简单,但是MyBatis不支持。。但是MyBatis中提供了foreach语句实现IN查询,foreach语法如下:

foreach语句中, collection属性的参数类型可以使:List、数组、map集合

​     collection: 必须跟mapper.java中@Param标签指定的元素名一样

​     item: 表示在迭代过程中每一个元素的别名,可以随便起名,但是必须跟元素中的#{}里面的名称一样。

index:表示在迭代过程中每次迭代到的位置(下标)

open:前缀, sql语句中集合都必须用小括号()括起来

​     close:后缀

separator:分隔符,表示迭代时每个元素之间以什么分隔

到此这篇关于mybatis plus in方法使用详解的文章就介绍到这了,更多相关mybatis plus in使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

java plus in_mybatis plus in方法使用详解相关推荐

  1. java easing_jQuery animate easing使用方法图文详解

    从jQuery API 文档中可以知道,jQuery自定义动画的函数.animate( properties [, duration] [, easing] [, complete] )有四个参数: ...

  2. java condition详解_Java使用Condition控制线程通信的方法实例详解

    Java使用Condition控制线程通信的方法实例详解 发布于 2020-4-20| 复制链接 摘记: 本文实例讲述了Java使用Condition控制线程通信的方法.分享给大家供大家参考,具体如下 ...

  3. Java的JVM运行时栈结构和方法调用详解

    详细介绍了Java 的JVM的运行时栈结构,以及和方法调用详解,包括解析调用和分派调用. JVM对于方法的执行是基于栈的,方法调用--入栈,方法调用完毕--出栈,了解JVM的运行时栈结构,有助于我们更 ...

  4. java 获取用户的MAC地址多种方法实例详解

    java 获取用户的MAC地址多种方法实例详解 这篇文章主要介绍了JAVA实现获取用户的MAC地址的多种方法实例,需要的朋友可以参考下 java实现获取用户的MAC地址方法: 方法一:将本机地址与局域 ...

  5. java servlet init方法_JSP开发Servlet重写init()方法实例详解

    jsp开发servlet重写init()方法实例详解 写一个servlet时,有时需要我们重写该servlet的初始化方法,然后,究竟是重写init(servletconfig config),还是重 ...

  6. java 拦截器顺序_Springmvc拦截器执行顺序及各方法作用详解

    实现HandlerInterceptor接口或者继承HandlerInterceptor的子类,比如Spring 已经提供的实现了HandlerInterceptor 接口的抽象类HandlerInt ...

  7. android+发邮件,Android发送邮件的方法实例详解

    Android发送邮件的方法实例详解 时间:2021-05-20 本文实例讲述了Android发送邮件的方法.分享给大家供大家参考,具体如下: 在android手机中实现发送邮件的功能也是不可缺少的. ...

  8. oracle大对象实例_Oracle解析复杂json的方法实例详解

    问题背景: 当前在Oracle数据库(11G之前的版本)解析json没有可以直接使用的系统方法,网上流传的PLSQL脚本大多也只可以解析结构较单一的json串,对于结构复杂的json串还无法解析.如此 ...

  9. 2020年 第11届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2020.7.5】

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:部分 ...

  10. 2020年 第11届 蓝桥杯 Java C组 省赛真题详解及小结【第1场省赛 2020.7.5】

    蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...

最新文章

  1. Mac 技术篇-设置Finder文件管理显示文件路径
  2. 计算机科学导论 第4版,计算机科学导论.第4版
  3. Unity3D正常行走和飞行的实现
  4. Bootstrap3基础 input-group-btn 按钮与输入框 横向组合
  5. unity发布成手机app怎么不能被顶_Unity中Android API 28之后无法HTTP请求
  6. AFNetworking 对数据进行https ssl加密
  7. php Heredoc应用说明
  8. Huawei eNSP 安装教程
  9. IOS 学习笔记 2015-03-27 我理解的OC-代理模式
  10. (转)OL2中设置鼠标的样式
  11. vue element table 修饰
  12. PHP+trim乱码,PHP 源码探秘 - 为什么 trim 会导致乱码
  13. 04-struts2框架中获取servlet api及Result结果类型
  14. Mysql 查询某个字段最长的记录
  15. Arduino - MPU6050陀螺仪三轴加速度倾角传感器
  16. C语言课程设计——电影院订票系统
  17. python爬虫---拉勾网与前程无忧网招聘数据获取(多线程,数据库,反爬虫应对)
  18. 新塘单片机烧写器_新唐单片机烧录工具-Nuvoton ICP Programming Tool下载v3.00.6909官方免费版-ucbug下载站...
  19. linux更改ntfs格式权限,Gentoo Linux下读写NTFS格式分区(ntfs-3g解决NTFS只读不可写的问题)...
  20. 一文读懂nginx charset

热门文章

  1. 点滴记录:管理工作的50点亲身感悟(分享!)
  2. Linux文件系统Ext2,Ext3,Ext4性能大比拼
  3. 管理Exchange 2003注意事项
  4. 构建贝叶斯深度学习分类器
  5. UITableViewController与UIViewController中使用UITableView
  6. easyui missingMessage
  7. web性能压力测试工具http_load/webbench/ad
  8. Webpack入门教程三十
  9. 消息中间件activemq-5.13.0安全验证配置
  10. ExtJS4.2学习 php版(五)