IBATIS里的iterate标签提供了遍历List 来动态构造SQL。
主要写下使用的时候的注意点:
在BabyDAOImpl类里面些这么一个方法
/**
* 测试iterator
*/
public List<BabyDO> queryByIds(Map idsMap) throws SQLException {
return client.queryForList("queryByIds", idsMap);
}
配置的sqlMap如下:
<select id="queryByIds" resultMap="baby-Result" parameterClass="java.util.Map">
select * from Baby where id in (
<!-- iterate标签的property属性是parameterClass里面去找一个属性,这个属性实现了Iterable接口 -->
<iterate property="idsList" conjunction=",">
#idsList[]#
</iterate>
)
</select>
这里有两个注意点:
第一点:
注意这里我们一般用 #传入的参数名称[]# 。而不太用$idsList[]$。
这个#和 $ 的区别是:
# 使用的是PreparedStatement 机制,生成的SQL字符串中含有很多?,这些?会被动态的添加参数进去查询
$ 中的变量好比字符串直接替换。
第二点:
<iterate property ……
这个property标签的指应该是 parameterClass里面去找一个属性,这个属性实现了Iterable接口。
如果本是传的就是 一个list,并且就是这个里面需要遍历的,那么不需要 指定property,否则会报错说ArrayList里找不到你说的这个property属性。(上例我传了一个Map进来,在Map里我放了一个idsList这么一个list。所以需要加上property属性)
=================================邪恶的分割线
==============================
另外一种情况,如果传进来的是个List<BabyDO>,那么代码应该如下:
BabyDAOImpl
/**
* 测试iterator
*/
public List<BabyDO> queryByIds(List<BabyDO> babys) throws SQLException {
return client.queryForList("queryByIds", babys);
}
SQLMap :
<select id="queryByIds" resultMap="baby-Result" parameterClass="java.util.ArrayList">
select * from Baby where id in (
<!-- iterate标签的property属性是parameterClass里面去找一个属性,这个属性实现了Iterable接口 -->
<iterate conjunction=",">
#babys[].id#
</iterate>
)
</select>
这里的注意点:
第一点:
本身传的就是一个ArrayList,所以不需要设置property。
第二点:
我要的是BabyDO当中的id作为遍历条件。所以需要加上“.id”。
分享到:
相关推荐
ibatise中关于iterate的用法的例子
NULL 博文链接:https://duqiangcise.iteye.com/blog/286764
iBatis Web用法实例工程
比较全面的介绍了Ibatis,是入门的比较经典的文档
ibatis入门与ibatis迭代的用法
ibatis: dynamic 使用方法
iBATIS缓存的使用方法
ibatis学习 ibatis总结 ibatis ibatis ibatis
ibatis批量处理操作实现,以及sping中需要注意点
ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料ibatis资料
将NPetShop的例子下载好之后,由于原来是基于VS2003的版本,在本地用VS2005打开后编译、运行时有一些问题,主要问题和解决方法如下: 1、转换成VS2005的版本 a、直接打开NPetshop.sln文件,按提示一直点击"下一步...
ibatis3.0中in的用法ibatis3.0中in的用法ibatis3.0中in的用法ibatis3.0中in的用法
ibatis demo,ibatis例子,ibatis示例
iBATIS 级联iBATIS 级联iBATIS 级联
ibatis的原码 ibatis源码 ibatis源码 ibatis源码
ibatis
Ibatis3,手册,Ibatis3手册,Ibatis3使用手册,Ibatis3参考手册
ibatis代码自动生成,ibatis代码自动生成,ibatis代码自动生成,ibatis代码自动生成
ibatis api,ibatis文档,ibatis说明文档
ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南