IBATIS里的iterate标签提供了遍历List 来动态构造SQL。
主要写下使用的时候的注意点:
在BabyDAOImpl类里面些这么一个方法
/**
* 测试iterator
*/
public List<BabyDO> queryByIds(Map idsMap) throws SQLException {
return client.queryForList("queryByIds", idsMap);
}
配置的sqlMap如下:
这里有两个注意点:
第一点:
注意这里我们一般用 #传入的参数名称[]# 。而不太用$idsList[]$。
这个#和 $ 的区别是:
# 使用的是PreparedStatement 机制,生成的SQL字符串中含有很多?,这些?会被动态的添加参数进去查询
$ 中的变量好比字符串直接替换。
第二点:
<iterate property ……
这个property标签的指应该是 parameterClass里面去找一个属性,这个属性实现了Iterable接口。
如果本是传的就是 一个list,并且就是这个里面需要遍历的,那么不需要 指定property,否则会报错说ArrayList里找不到你说的这个property属性, 在遍历的时候, 直接写#[]#。(上例我传了一个Map进来,在Map里我放了一个idsList这么一个list。所以需要加上property属性)
=================================邪恶的分割线 ==============================
另外一种情况,如果传进来的是个List<BabyDO>,那么代码应该如下:
BabyDAOImpl
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”。
分享到:
相关推荐
当调用这个方法时,iBatis会自动生成如下SQL: ```sql SELECT * FROM users WHERE id IN (1, 2, 3, ...) ``` 注意,`#{ids[index]}`中的`index`是可选的,如果省略,则默认使用集合中的元素。如果需要访问集合中的...
标题中的“ibatis<iterate>标签”指的是在iBATIS框架中用于动态SQL的一个关键功能。iBATIS是一个优秀的持久层框架,它允许将SQL语句直接嵌入到Java代码中,简化了数据库操作。而`<iterate>`标签是iBATIS提供的一个...
### 详细介绍Ibatis的用法 #### Ibatis概述与特点 Ibatis是一个开源的持久层框架,它通过简单的XML配置文件将JavaBean映射到SQL语句上,从而极大简化了对关系数据库的操作。与其他数据库持久层框架如JDO、...
在这个"iBatis Web用法实例"中,我们将深入探讨如何在Web项目中集成并使用iBatis,以及相关的最佳实践。 1. **iBatis 概述**: iBatis 作为轻量级的ORM(对象关系映射)框架,它的核心思想是将SQL与Java代码分离,...
### iBatis批量操作:`<iterate>`标签的使用 `<iterate>`标签是iBatis中用于循环遍历集合的一种机制,它允许你在SQL语句中动态生成参数列表,这对于批量操作(如批量插入、更新或删除)尤为重要。该标签支持多种...
在MyEclipse中,有专门为Ibatis设计的插件——Ibator,可以帮助开发者快速生成DAO和实体类,极大地简化了开发流程。 Ibator,全称为"Ibatis Auto Generator for Eclipse",是Ibatis官方提供的一个扩展,它可以在...
MyBatis生成器(MBG)是MyBatis MyBatis 和iBATIS的代码生成器。它将为MyBatis的所有版本以及版本2.2.0之后的iBATIS生成代码。它将内省一个数据库表(或多个表),并将生成可用于访问表的工件。这减轻了设置对象和...
**iBatis的使用步骤** 1. **配置环境**:引入iBatis的jar包,并在项目中配置SqlMapConfig.xml文件,包括数据源、事务管理器等。 2. **编写SQL映射文件**:创建XML文件,定义SQL语句,包括查询、插入、更新和删除等...
一、iBATIS的核心要素——SQL Maps SQL Maps是iBATIS的核心,通过XML文件定义了Java对象与SQL语句之间的映射,大大减少了数据库操作的代码量。这种映射方式使得SQL语句的管理更加灵活,也更易于理解和维护。 二、...
Ibatis 提供了一些基本的API,如查询、添加、删除和修改方法。通常,会通过 SqlMapClient 的工厂类创建 SqlMapClient 实例,以管理数据库操作。例如,使用 SqlMapClientBuilder 创建 SqlMapClient 对象,然后执行...
### iBatis批量处理知识点详解 #### 一、iBatis基本实现 iBatis(现已更名为MyBatis)是一...此外,合理选择不同的实现方式(如直接使用iBatis API、基于Spring事务管理或使用回调方式),可以使程序更加灵活、高效。
《全面解析Ibatis实战教程——基于ibatistest2项目》 Ibatis,作为一个轻量级的持久层框架,以其灵活、易用的特点在Java开发领域广泛应用。本教程旨在通过一个完整的实例——"ibatistest2"项目,帮助开发者深入理解...
标题中的“Spring MVC Ibatis Bean 根据mysql数据表——代码生成工具”就是这样的一个工具,它能够根据MySQL数据库中的表结构,快速生成符合Spring MVC和Ibatis框架的代码。 Rapid-generator-0.2v可能是这个工具的...
### iBATIS缓存的使用方法 在数据库访问框架iBATIS中,缓存机制是一项重要的功能,它能够显著提高应用程序的性能。本文将详细介绍iBATIS中的缓存使用方法,包括缓存模型的配置、不同类型的缓存控制器以及如何在SQL...
Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...
### IBatis.Net 使用方法详解 #### 一、概述 IBatis.NET是一款开源的数据访问层框架,它能够将对象与数据库中的记录映射起来,并提供了一系列的工具帮助开发者更高效地处理数据访问逻辑。本文将围绕如何下载、编译...
在IT行业中,数据库操作是必不可少的一部分,而Ibatis作为一款流行的Java持久层框架,它使得SQL与Java代码更好地...对于`ibatisdemo`这个项目,你可以按照上述方法检查并调整项目的配置,以解决可能出现的乱码问题。
通过这个demo,你可以了解到Ibatis的基本用法,如何编写SQL映射文件,如何设计Mapper接口,以及如何在Java代码中调用这些接口执行数据库操作。同时,也能掌握Ibatis的动态SQL特性,以及如何配合Spring进行更高效的...
6. **API使用**:介绍SqlSession、SqlSessionFactory、Executor等关键接口和类的使用方法。 7. **缓存机制**:解释iBATIS的缓存策略,包括本地缓存和二级缓存,以及如何自定义缓存实现。 8. **事务管理**:讨论...
标题 "ibatis" 提到的是一个著名的开源Java持久层框架——iBATIS,它在过去的Web应用程序开发中占据了重要地位。iBATIS 提供了一种将SQL查询与Java代码分离的方法,增强了数据库操作的灵活性和可维护性。"ibatis in ...