如下:
在ibatis中如何使用in条件
select * from table where xxx in(参数1,参数2,参数3)
参数数量是可变的,即有可能有2个参数,有可能有3个参数
<delete id="deleteBookByIdOrIds">
DELETE FROM book
<isParameterPresent>
<isPropertyAvailable property="keyList">
<isNotEmpty property="keyList">
<iterate property="keyList"
prepend="where id in " open="(" close=")" conjunction=",">
#keyList[]#
</iterate>
</isNotEmpty>
</isPropertyAvailable>
</isParameterPresent>
</delete>
传参数时,
List <Integer>list=new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
Map map=new HashMap();
map.put("keyList",list);
sqlMapClient.delete("deleteBookByIdOrIds",map);
Iterate:这属性遍历整个集合,并为List集合中的元素重复元素体的内容。
Iterate的属性:
prepend - 可被覆盖的SQL语句组成部分,添加在语句的前面(可选)
property - 类型为java.util.List的用于遍历的元素(必选)
open - 整个遍历内容体开始的字符串,用于定义括号(可选)
close -整个遍历内容体结束的字符串,用于定义括号(可选)
conjunction - 每次遍历内容之间的字符串,用于定义AND或OR(可选)
<iterate>
遍历类型为java.util.List的元素。
例子:
<iterate prepend=”AND” property=”userNameList” open=”(” close=”)” conjunction=”OR”>
username=#userNameList[]#
</iterate>
注意:使用<iterate>时,在List元素名后面包括方括号[]非常重要,方括号[]将对象标记为List,以防解析器简单地将List输出成String。
其实还有一个简单方法就是动态在java中拼接出字符串,然后在xml中用$引入
id in ($userNameList$)
比如
String str = "'a','b','c','d'";
配置文件中如果是:
id in ($userNameList$)
结果应该是:id in ('a','b','c','d')
分享到:
相关推荐
根据提供的信息来看,这里主要涉及的是《ibatis in action》这本书的相关内容分享。不过由于描述与部分内容中的信息并不完整,且存在乱码情况,我们难以直接从中提取具体的知识点。因此,下面将围绕《ibatis in ...
《iBATIS in Action》是一本专注于讲解iBATIS框架使用的专业书籍,它为开发者提供了深入浅出的指导,帮助他们有效地在项目中应用这一强大的持久层解决方案。iBATIS,一个由Apache软件基金会维护的开源项目,是Java...
根据提供的文件信息,本书《Manning iBATIS in Action Jan. 2007 eBook-BBL》主要介绍了iBATIS框架的基本概念、安装配置方法、核心功能及其在实际项目中的应用。下面将针对该书籍中提及的主要知识点进行详细阐述。 ...
### ibatis3.0中`in`的用法详解 #### 一、引言 在进行数据库查询时,经常会遇到需要根据多个值进行查询的情况,这时`IN`语句就显得尤为重要。`IN`语句可以用于判断某个字段的值是否在一个指定的列表之中,非常适用...
本篇文章将详细探讨如何在iBatis中调用Oracle的函数和存储过程,尤其是处理IN和OUT参数以及游标的场景。 首先,我们需要了解iBatis的基本工作原理。iBatis是一个SQL映射框架,它允许开发者将SQL语句写在XML配置文件...
- 避免在`WHERE`子句中使用多个条件或`OR`操作符,而是应该使用`IN`操作符或者`UNION ALL`合并多个查询。 3. Struts、Spring与Ibatis的集成: - Struts作为MVC框架,主要负责视图与控制器的交互。在项目中,`...
根据提供的文件信息,我们可以从《iBATIS in Action》这本书中提炼出多个关于iBATIS框架的重要知识点。以下是对这些知识点的详细解析: ### 一、iBATIS哲学 **iBATIS哲学**强调了简单性和灵活性的重要性。该框架的...
【iBATIS In Action:使用映射语句(一)】 在深入探讨iBATIS的映射语句之前,我们首先要理解一些基本概念。iBATIS是一个轻量级的持久层框架,它允许开发者将SQL语句直接写在XML文件中,通过映射语句与Java对象进行...
在处理数组时,Ibatis提供了一种方式来批量处理数据,这在需要对一组数据进行相同操作时非常有用。在本场景中,我们将深入探讨如何在Ibatis中处理数组,以及与EasyUI Tree组件的结合。 首先,我们需要了解Ibatis中...
在实际应用中,iBATIS提供了更复杂的映射选项,特别是在处理查询结果集时。例如,它可以处理多表查询、自定义类型映射、嵌套结果集等复杂情况。这些特性将在后续的章节中进一步探讨。 总的来说,iBATIS作为一个data...
《iBATIS in Action》是一本专注于iBATIS框架实战的书籍,该压缩包包含的主要内容是关于如何在实际开发中有效地使用iBATIS映射语句。iBATIS作为一个优秀的数据持久层框架,它提供了将SQL语句与Java代码分离的能力,...
在《iBATIS In Action》一书中,作者详细介绍了如何使用iBATIS进行高级查询技术,包括处理复杂的集合属性、映射关系的继承、语句类型和DDL(Data Definition Language),以及如何处理大规模数据集。 1. **使用...
在本篇文章中,我们将深入探讨如何使用 Java 编程...通过以上分析,我们可以看出 iBatis 在处理动态 SQL 方面具有很大的灵活性和扩展性。在实际开发过程中,合理利用 iBatis 可以极大地提高开发效率和系统的可维护性。
在iBatis中,`<iterate>`标签是一个非常实用的功能,它允许我们处理集合数据,如数组、List或Map等,进行循环遍历并生成动态SQL语句。下面我们将详细探讨`<iterate>`标签的用法及其示例。 `<iterate>`标签的主要...
ibatIS调用存储过程是数据库操作中常见的一种技术,特别是在复杂的业务逻辑处理或数据批量操作时,存储过程能够提供更高的效率和更好的性能。本文将深入探讨如何在ibatIS框架中调用存储过程,以及涉及到的相关知识点...
### iBATIS in Action:深入理解与应用 #### iBATIS哲学 iBATIS的核心理念是尊重并充分利用现有的关系数据库及SQL技术。该框架认为在软件开发领域内,关系型数据库及其查询语言SQL具有不可替代的价值。自1970年代...
`<foreach>`标签用于遍历集合并生成对应的SQL片段,尤其在处理IN语句时非常方便。 ```xml (" separator="," close=")"> id = #{item} ``` ### 9. 缓存机制 iBatis也支持缓存,可以提高多表查询的性能。默认...