`

ibatis 数组参数

阅读更多

用迭代来实现,用parameterClass 来接收然后通过<iterate>整个集合

Iterate的属性:
prepend
可被覆盖的SQL成部分,添加在句的前面(可
property
java.util.List的用于遍的元素(必
open
整个遍内容体始的字符串,用于定括号(可
close
-整个遍内容体束的字符串,用于定括号(可
conjunction
次遍内容之的字符串,用于定ANDOR(可
<iterate>
历类java.util.List的元素。

例子:

User.xml

<select id="getUser" parameterClass="java.util.Map" resultClass="userModel">

<![CDATA[ select * from userinfo WHERE (userid in

]]>

  <iterate property="personList" open="(" close=")" conjunction=",">

    #personList[].userId#

<!--$personList[].userId$-->

           </iterate>

<![CDATA[

)

]]>

</select>

注意:使用<iterate>,在List元素名后面包括方括号[]非常重要,方括号[]标记为List,以防解析器简单地将 List出成String

(#) 使用的是PreparedStatement 机制,生成的SQL字符串中含有很多??会被动态的添加参数查询

($) 中的量好比字符串直接替

Dao.java

public UserModel getUser(UserModel userModel) throws SQLException {                      

Map<String, Object> map = new HashMap<String, Object>();

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

UserModel userModel1 = new UserModel();

userModel1.setUserId("1");

list.add(userModel1);

UserModel userModel2 = new UserModel();

userModel2.setUserId("lsw");                                 

list.add(userModel2);    

map.put("personList", list);

List sqlUserModelList = getSqlMapClientTemplate().queryForList("getUser", map);

UserModel sqlUserModel = new UserModel();                     

return sqlUserModel;    }

分享到:
评论

相关推荐

    java~springboot~ibatis数组in查询的实现方法

    Java@Spring Boot@iBatis数组in查询的实现方法 在本文中,我们将详细介绍Java@Spring Boot@iBatis数组in查询的实现方法。这种查询方法在实际开发中非常有用,特别是在需要从数组中查询符合条件的集合时。 首先,让...

    ibatis 处理数组

    这里的`collection="ids"`指定了参数数组的名字,`item="item"`是循环中的当前元素变量,`index="index"`是元素的索引,`open="("`和`close=")"`分别表示遍历开始和结束的字符。 接下来,关于EasyUI Tree,这是一个...

    ibatis16个常用sql语句

    在iBatis中,输入参数也可以只包含一个数组类型。例如: ```xml select moduleId, actionId from StatMemberAction moduleId = #moduleId# ``` 上面的语句将查询`StatMemberAction`表中满足条件的记录,...

    ibatis for .net

    5. **参数映射**:Ibatis支持多种类型的参数映射,包括简单的值、复杂对象、数组和集合。它能够自动将.NET对象的属性映射到SQL语句的参数。 6. **结果集映射**:Ibatis可以根据预先定义的结果集映射规则,自动将...

    Ibatis复杂查询语句.doc

    - `&lt;iterate&gt;`用于处理数组或集合类型的参数,如`dismissStatusList`,它可以生成逗号分隔的条件,如`m.DISMISS_STATUS in ( ... )`。 总结起来,这个Ibatis查询语句充分展示了Ibatis处理复杂查询的能力,包括动态...

    ibatis批量存储

    foreach标签是Ibatis中用于处理数组或集合的标签,它的作用类似于Java的for-each循环,常用于动态构建SQL语句。基本语法如下: ```xml (" separator="," close=")"&gt; #{item} ``` 在这里,`collection`是需要遍历的...

    ibatis批处理

    在iBatis配置文件中,使用`&lt;iterate&gt;`标签遍历`appDevIds`数组,形成IN条件语句。 **2.2 情况二:多个输入参数循环次数是对称的** 当输入参数的循环次数与操作的次数相匹配时,可以创建一个HashMap,将参数名作为...

    IBatis案例

    IBatis 支持批量插入和更新,通过在 SQL 语句中使用 `foreach` 标签,可以方便地处理数组或集合数据。例如,批量插入用户: ```xml INSERT INTO users(name, email) ;"&gt; (#{item.name}, #{item.email}) ``` ...

    Hitis V1.2.2

    (1)在ibatis中,不能取得实际执行的sql,也不能取得实际执行的sql所需要的参数数组,而Hitis可以 (2)在ibaits中,不能在逻辑节点写入像"大于号"这样的特殊字符,因为,它是基于xml的,而Hitis可以,Hitis很像html,...

    Hitis-src-1.0.jar

    (1)在ibatis中,不能取得实际执行的sql,也不能取得实际执行的sql所需要的参数数组,而Hitis可以 (2)在ibaits中,不能在逻辑节点写入像"大于号"这样的特殊字符,因为,它是基于xml的,而Hitis可以,Hitis很像html,...

    springmybatis

    其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语句返回值的接口(比如IUserOperation.class),这样现在就可以至此那个更简单,更安全的代码,没有容易发生的字符串文字和转换的错误.下面是详细...

    Hitis V1.2.1

    (1)在ibatis中,不能取得实际执行的sql,也不能取得实际执行的sql所需要的参数数组,而Hitis可以 (2)在ibaits中,不能在逻辑节点写入像"大于号"这样的特殊字符,因为,它是基于xml的,而Hitis可以,Hitis很像html,...

    Hitis V1.1.1

    (1)在ibatis中,不能取得实际执行的sql,也不能取得实际执行的sql所需要的参数数组,而Hitis可以 (2)在ibaits中,不能在逻辑节点写入像"大于号"这样的特殊字符,因为,它是基于xml的,而Hitis可以,Hitis很像html,...

    Hitis V1.1

    (1)在ibatis中,不能取得实际执行的sql,也不能取得实际执行的sql所需要的参数数组,而Hitis可以 (2)在ibaits中,不能在逻辑节点写入像"大于号"这样的特殊字符,因为,它是基于xml的,而Hitis可以,Hitis很像html,...

    idatis_mapper例子

    4. ****标签: 用于处理列表或数组,如IN语句的参数。例如,根据用户ID列表筛选用户。 ```xml (" separator="," close=")"&gt; #{item} ``` 生成的SQL类似:`WHERE id IN (1, 2, 3)` 5. ****标签: 用于去除SQL语句的...

    Hitis V1.2

    (1)在ibatis中,不能取得实际执行的sql,也不能取得实际执行的sql所需要的参数数组,而Hitis可以 (2)在ibaits中,不能在逻辑节点写入像"大于号"这样的特殊字符,因为,它是基于xml的,而Hitis可以,Hitis很像html,...

    json转换工具

    8. **iBatis与JSON**:在iBatis中,理解如何使用JSON转换工具处理动态SQL的参数和返回结果,以及如何配置映射文件来支持JSON数据。 综上所述,"json转换工具"与iBatis的结合使用涉及到了多个层次的IT知识,包括JSON...

    mybatis官方文档PDF_中英文版

    6. **参数映射**:MyBatis 支持 Map, POJO 类型,甚至基于索引的数组参数,通过 `#{}` 进行参数绑定,保证了 SQL 注入的安全性。 7. **结果映射**:通过 `&lt;resultMap&gt;` 定义字段与类属性的映射关系,可以处理一对一...

    java代码书籍.rar

    这份文档可能详细介绍了如何编写和运行JUnit测试用例,包括断言的使用、测试注解、测试套件、参数化测试以及模拟对象的概念,有助于开发者实践TDD(测试驱动开发)和持续集成。 4. **java学习笔记上.pdf**:同下册...

    完整的ognl源代码

    1. **对象导航**:OGNL允许通过点号`.`或索引`[]`操作符来访问对象的属性或数组元素。例如,`user.name`可以获取`user`对象的`name`属性,而`list[0]`则访问列表的第一个元素。 2. **表达式计算**:OGNL支持数学...

Global site tag (gtag.js) - Google Analytics