zoukankan      html  css  js  c++  java
  • mybatis中参数为list集合时使用 mybatis in查询

    mybatis中参数为list集合时使用 mybatis in查询

    一、问题描述
    mybatis sql查询时,若遇到多个条件匹配一个字段,
    sql 如:
    select * from user where id in ('23','45','34')

    , 那么在 mybatis 中该如何实现呢?

    二、实现思路
    1、方法一: java中将满足条件的值 list 转成符合格式的 sql 字符串
    2、方法二: mybatis的xml文件是基于OGNL表达式实现的,可以将满足条件的list直接传入到xml中,进行处理。


    三、java转字符串
    1、 依赖jar包:
    commons-lang3-3.3.2.jar

    包 (没包,可以私信我)
    2、 java中用StringUtils.join()方法操作
    List<String> idList=new ArrayList<String>();
    idList.add("1002");
    idList.add("6002");
    idList.add("3206");
    String ids = "'"+StringUtils.join(codeList,"','")+"'";

    3、 xml中如下:
    select * from user where id in ( ${ids} ) <!-- 注意 “$” 不是 "#" -->


    四、xml 对list进行遍历
    1、假设满足条件list 如下:
    List<String> idList=new ArrayList<String>();
    idList.add("1002");
    idList.add("6002");
    idList.add("3206");


    2、mybatis xml 中直接处理 list数据
    select * from user where id in
    <foreach collection="idList" index="index" item="id" open="(" separator="," close=")">
    #{id}
    </foreach>


    3、关于mybatis xml中 <foreach>标签各个属性的作用 请参考:http://blog.csdn.net/aiyawalie/article/details/52954138

    ---------------------
    作者:HaHa_Sir
    来源:CSDN
    原文:https://blog.csdn.net/HaHa_Sir/article/details/79277788
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    修改 Mac 默认 PHP 运行环境,给 MAMP 配置全局 Composer
    修改 Mac 默认 PHP 运行环境,给 MAMP 配置全局 Composer
    Intellij Idea/Webstorm/Phpstorm 的高效快捷键
    Intellij Idea/Webstorm/Phpstorm 的高效快捷键
    管理工具推荐
    mongo find
    redis 工具
    Redis Quick Start [熟练版]
    Redis cluster
    redis cluster 使用中出现的问题
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/11275806.html
Copyright © 2011-2022 走看看