1.mybatis in 查询List时

业务代码示例如下:

List<String> list=new ArrayList<String>();

...;//向list中填装参数值

//list为必传参数集时,判断如果该list为空,没有参数值,则填装一个-1或其他保证该表不会查询出的参数值;
//如果list为非必传参数集时,则下面if判断可以省去;
if(list.size()==0){
    list.add("-1");
}

HashMap<String,Object> params=new HashMap<String,Object>();
params.put("list",list);
List<HashMap<String,Object>> rList=dao.queryParams(params);
mybatis中相应sql写法示例如下:

<select id="queryParams" resultType="HashMap">
    select * from cga_case a 
    <where>
        <if test="list != null and list.size()>0">//注意:此处不能写list!=''要写成list.size()>0,不然会报错
        AND a.case_id IN
        <foreach item="item" index="index" collection="list" open="("  close=")" separator=",">  
          #{item}   
        </foreach>  
    </if>
    </where>
</select>

2.mybatis in查询 数组时

业务代码示例如下:

String[] arr=new String[]{...};
//arr为必传参数集时,判断如果该arr为空,没有参数值,则填装一个-1或其他保证该表不会查询出数据的参数值;
//如果arr为非必传参数集时,则下面if判断可以省去;
if(arr.length==0){
    arr=new String[]{"-1"};
}

HashMap<String,Object> params=new HashMap<String,Object>();
params.put("arr",arr);
List<HashMap<String,Object>> rList=dao.queryParams(params);

mybatis中相应sql写法示例如下:

<select id="queryParams" resultType="HashMap">
    select * from cga_case a 
    <where>
        <if test="arr != null and arr.length>0">
        AND a.case_id IN
        <foreach item="item" index="index" collection="arr" open="("  close=")" separator=",">  
          #{item}   
        </foreach>  
    </if>
    </where>
</select>

Mybatis in查询List或数组 场景实例相关推荐

  1. php 实现数组数据查询,thinkphp数据查询和遍历数组实例_PHP

    本文实例讲述了thinkphp数据查询和遍历数组的方法.分享给大家供大家参考.具体方法如下: 数据库可以使用DSN方法进行配置: 代码如下: 'DB_PREFIX'=>'tp_', //设置表前 ...

  2. MyBatis之查询缓存

    MyBatis之查询缓存 2017/09/30 正如大多数持久层框架一样,MyBatis同样也提供了对查询数据的缓存支持.今后我们要学习的SpringMVC框架属于系统控制层,它也有它的缓存区域,对响 ...

  3. 2.4.3 Mybatis 高级查询, 复杂映射, 返回主键, 动态SQL if, set, foreach, 核心配置文件深入,plugins标签, 多表查询, 嵌套查询

    目录 Mybatis 复杂映射&配置文件深入 一 Mybatis高级查询 1.1 ResutlMap属性 1.2 多条件查询(三种) 1.3 模糊查询 二 Mybatis映射文件深入 2.1 ...

  4. Mybatis联合查询

    为什么80%的码农都做不了架构师?>>>    案例 一个博客系统中,用户可以任意发表博文(Post),用户还可以对博文进行评论(Comment).于是在这个系统中,存在以下的关系: ...

  5. MyBatis基础:MyBatis关联查询(4)

    1. MyBatis关联查询简介 MyBatis中级联分为3中:association.collection及discriminator. ◊ association:一对一关联 ◊ collecti ...

  6. php 两个数组中不同的元素,PHP实现查询两个数组中不同元素的方法

    这篇文章主要介绍了PHP实现查询两个数组中不同元素的方法,涉及PHP数组差集运算与数组合并的相关技巧,需要的朋友可以参考下 本文实例讲述了PHP实现查询两个数组中不同元素的方法.分享给大家供大家参考, ...

  7. 关联规则应用场景实例十则

    本文整理了10个天池.DataCastle.DataFountain等中出现的,可使用聚类算法处理的问题场景实例. 1 基于用户位置信息的商业选址 随着信息技术的快速发展,移动设备和移动互联网已经普及 ...

  8. 聚类算法应用场景实例十则

    本文整理了10个天池.DataCastle.DataFountain等中出现的,可使用聚类算法处理的问题场景实例. 1 基于用户位置信息的商业选址 随着信息技术的快速发展,移动设备和移动互联网已经普及 ...

  9. mybatis 详解(三)------入门实例(基于注解)

    1.创建MySQL数据库:mybatisDemo和表:user 详情参考:mybatis 详解(二)------入门实例(基于XML) 一致 2.建立一个Java工程,并导入相应的jar包,具体目录如 ...

最新文章

  1. c4d+ps打造抽象NFT加密艺术 Create Abstract NFT Crypto Art with Cinema 4D + Photoshop
  2. oracle根据一张表更新另外一张表
  3. Spring【AOP模块】就是这么简单
  4. cycle函数python_Python执行函数的周期实现
  5. centOS安装Ftp
  6. python自然语言分析 何翠仪_如何用 Python 中的 NLTK 对中文进行分析和处理?
  7. linux runqueue定义,Linux中多CPU的runqueue及抢占
  8. 采用这套全方位监控方案,立刻规避90%采购风险(附体验demo)
  9. Java基础之StringBuffer和StringBuilder的区别
  10. ubuntu使用pytorch训练出现killed_目标检测之pytorch预训练模型的使用(削减削减网络层,修改参数)fine-tune技巧...
  11. Linux 命令行历史及其history
  12. 添加地图图例 Arcengine+C#
  13. 太原理工大学 微型计算机实验,太原理工大学 微机原理 实验三 十字路口红绿灯闪烁实验...
  14. 从学生到专家,C语言开发必读的8本书
  15. 树莓派安装LibreOffice中文包
  16. 如何升级maven版本
  17. 程序员都是段子手,注释都带魔性
  18. 微信小程序之在线任务发布与接单平台(2)
  19. python青蛙跳台阶_Python之青蛙跳台阶
  20. uni-app 微信小程序端-AirKiss一键配网

热门文章

  1. 平稳序列的预测和拟合之单位根检验
  2. python实例之 67,68
  3. java struts1_struts1.x
  4. ado execute open区别_二极管IN4148和IN4007的应用区别
  5. 【视频】视频文件格式和视频编码
  6. 【Python】如何选择赋值和拷贝
  7. 递归 与 动态规划 区别
  8. 在Github和oschina上搭建自己的博客网站
  9. 修改PHP上传文件的大小限制
  10. 介绍一个十分好用的JQUERY图片放大镜插件