<!-- 快速插入Demo -->
<insert id="sendMailFast" parameterClass="java.util.ArrayList">
insert into mail(sender,reciver,content,type,flag,sendTime,endTime,goodId,msType,msNum) values
<iterate conjunction=",">
(#value[].sender#,#value[].reciver#,#value[].content#,#value[].type#,#value[].flag#,#value[].sendTime#,#value[].endTime#,#value[].goodId#,#value[].msType#,#value[].msNum#)
</iterate>
</insert>
<!-- 删除指定邮件 -->
<delete id="deleteMail" parameterClass="java.util.ArrayList">
delete from mail where id in
<iterate conjunction="," open="(" close=")">
#value[]#
</iterate>
</delete>
这个写法验证无错,但是还是不太明白这个#value[]#,有时上网说是要写成这样:
ibatis 数组参数
2010-05-02 13:31
用迭代来实现,用parameterClass 来接收然后通过<iterate>遍历整个集合
Iterate的属性: prepend - 可被覆盖的SQL语句组成部分,添加在语句的前面(可选) property - 类型为java.util.List的用于遍历的元素(必选) open - 整个遍历内容体开始的字符串,用于定义括号(可选) close -整个遍历内容体结束的字符串,用于定义括号(可选) conjunction - 每次遍历内容之间的字符串,用于定义AND或OR(可选) <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; }
|
分享到:
相关推荐
ibatis 处理数组,修改配置文件和easyui tree 部分代码
ibatis教程 输入参数详解 ibatis快速入门
ibatis的多参数查询.doc
ibatis学习 ibatis总结 ibatis ibatis ibatis
ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料
ibatis与存储过程(带输出参数的应用)
ibatis demo,ibatis例子,ibatis示例
iBATIS 级联iBATIS 级联iBATIS 级联
ibatis的原码 ibatis源码 ibatis源码 ibatis源码
ibatis中输入输出各种类型的参数分析及#与$区别
最后,还讨论了iBATIS的优缺点,及为什么是这样的一种方式,即所谓的“在完全OR与JDBC之间的一个幽雅的折衷。” <br>就象Developer's Notebook 系列中所有的书一样,你将由直接的且实用的方式获得信息,这些信息...
《iBATIS实战》既可为广大的开发人员(不仅仅是Web应用程序开发人员)提供指导,也可为架构师的项目决策提供参考。项目经理、数据库管理员、质量保证员与测试员以及系统分析师也能从《iBATIS实战》中受益。 作者简介 ...
ibatis代码自动生成,ibatis代码自动生成,ibatis代码自动生成,ibatis代码自动生成
Ibatis3,手册,Ibatis3手册,Ibatis3使用手册,Ibatis3参考手册
主要介绍了java~springboot~ibatis数组in查询的实现方法,需要的朋友可以参考下
ibatis
ibatis api,ibatis文档,ibatis说明文档
ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南
ibatis 乱码解决 ibatis乱码 gbk iso_8859_1 乱码
ibatis教程,ibatis帮助文档,ibatis学习入门