`
点虫虫
  • 浏览: 17866 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ibatis 参数为数组

阅读更多

<!-- 快速插入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 
 次遍内容之的字符串,用于定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;    }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics