如何在mybatis 中使用In操作

假如我们想使用这样一个sql 语句,但是这样的sql语句有IN这样的操作。在我们的mybatis中有相对应的操作

SELECT
*
FROM
product_db.productinfo pi
WHERE pi.isvalid = 1
AND pi.id IN (22, 60)

下面将使用一个简单的过程来演示这个操作

下面这个是mybatis的映射文件

<select id="queryAllOpenProduct" parameterType="com.tims.open.domain.OpenProductQueryCondition"
resultType="com.tims.open.domain.OpenProduct">
SELECT
*
FROM
product_db.product p
WHERE
p.isvalid = 1
<if test="list != null">
<foreach collection="list" index="index" item="item" separator="," open="AND p.id IN (" close=")">
#{item}
</foreach>
</if>
</select> 下面是我们的查询condition类
Public OpenProductQueryCondition{
private Integer productId; private List<Integer> list;
}

下面我们对IN操作进行分析

<foreach collection="list" index="index" item="item" separator="," open="AND p.id IN (" close=")">
#{item}
</foreach>

list 就是传入的condition中的list,mybatis将会遍历中集合中的元素

index 可以添加也可以不添加

item 你将要遍历出元素的别名

**open ** 开始的位置

close 什么时候结束

如何在mybatis 中使用In操作的更多相关文章

  1. 如何在MyBatis中优雅的使用枚举

    问题 在编码过程中,经常会遇到用某个数值来表示某种状态.类型或者阶段的情况,比如有这样一个枚举:   public enum ComputerState { OPEN(10), //开启 CLOSE( ...

  2. mysql批量update更新,mybatis中批量更新操作

    在日常开发中,有时候会遇到批量更新操作,这时候最普通的写法就是循环遍历,然后一条一条地进行update操作.但是不管是在服务端进行遍历,还是在sql代码中进行遍历,都很耗费资源,而且性能比较差,容易造 ...

  3. 如何在mybatis中引用java中的常量和方法

    转自:http://www.68idc.cn/help/jiabenmake/qita/20140821125261.html 在mybatis的映射xml文件调用java类的方法: 1. SELEC ...

  4. 【mybatis】mybatis 中update 更新操作,null字段不更新,有值才更新

    示例代码如下: <update id="updateGoodsConfigQuery" parameterType="com.pisen.cloud.luna.ms ...

  5. MyBatis中的OGNL教程

    MyBatis中的OGNL教程 有些人可能不知道MyBatis中使用了OGNL,有些人知道用到了OGNL却不知道在MyBatis中如何使用,本文就是讲如何在MyBatis中使用OGNL. 如果我们搜索 ...

  6. 学习Spring Boot:(十二)Mybatis 中自定义枚举转换器

    前言 在 Spring Boot 中使用 Mybatis 中遇到了字段为枚举类型,数据库存储的是枚举的值,发现它不能自动装载. 解决 内置枚举转换器 MyBatis内置了两个枚举转换器分别是:org. ...

  7. Mybatis中的update动态SQL语句

    Mybatis中的CRUD操作(增删改查)中,简单的SQL操作比较直观,如查找操作: <select id="findBySrcId" resultMap="ent ...

  8. Django中管理并发操作

    上一篇我们说了,如何在Django中进行事务操作,数据的原子性操作 涉及了事务操作,我们不得不考虑的另一个问题就是:并发操作 还是那个用户转账的操作 我们使用事务操作解决的操作中途服务器宕机问题 但是 ...

  9. 面试官问:Mybatis中的TypeHandler你用过吗?

    持续原创输出,点击上方蓝字关注我吧 目录 前言 环境配置 什么是TypeHandler? 如何自定义? 如何将其添加到Mybatis中? XML文件中如何指定TypeHandler? 源码中如何执行T ...

随机推荐

  1. 开源的 Restful Api 集成测试工具 Hitchhiker

    Hitchhiker 是一款开源的 Restful Api 集成测试工具,你可以在轻松部署到本地,和你的team成员一起管理Api. 先上图看看: 简单介绍 背景是Team在开发一些Api,这些Api ...

  2. 获取当前页面URL信息

    文章链接:http://www.cnblogs.com/hongmaju/p/5510988.html 查看信息可以在控制台输出(tab或者右移补全): 如:document.URL  window. ...

  3. zetcode :: First programs in PyQt5

    练习代码,详见网站 http://zetcode.com/gui/pyqt5/firstprograms/ import sys from PyQt5 import QtWidgets from Py ...

  4. AC Analysis

    1.从Options---sheet properties—circuit—show all调出来节点编号 :

  5. 部分iphone手机上的div的点击事件无效

    最近在做一个手机移动端的项目,Andrio手机和部分iphone手机上点击事件都是好的,只有在老的型号上的iphone手机上点击事件无效果. 后来在网上查了很多资料,发现有加样式cursor:poin ...

  6. python基础学习(十二)

    模块 前面有简单介绍如何使用import从外部模块获取函数并且为自己的程序所用: >>> import math >>> math.sin(0) #sin为正弦函数 ...

  7. Linux Command Line learning

    https://www.codecademy.com/en/courses/learn-the-command-line Background The command line is a text i ...

  8. [2017-05-31]Abp介绍和经验分享-目录

    很久没动博客了,人比较懒. 最近想写点啥,主要就介绍下ABP框架和我这两年的使用经验. 文档翻译之类的工作就算了,需要的请参考: 官方文档 PS:官方文档末尾有中文文档的链接,这里就不贴了 先列个提纲 ...

  9. winform 通过驱动注册ID检测是否已安装驱动

    public bool IsRegistered() { string clsid = ConfigurationManager.AppSettings["clsid"]; //参 ...

  10. MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)

    简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式. 存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有OLTP和OLAP模式的区分.不同的存储引擎决定了 ...