1 映射继承,鉴别器(discriminator),根据某列的值来确定要实例化相关类的类型,与switch语句的工作原理类似,很少用,在ibatis in action里有例子
2 rowHandler是一个接口,当ibatis从数据库里取出数据后,将每条数据形成对象后,可以用这个方法对生成的对象进行处理,相当于给开发人员留下的灵活的接口。
//RowHandle生产XML
// XmlRowHandler rh=new XmlRowHandler();
// sqlMap.queryWithRowHandler("getAllUsers", "CN", rh);
// String xmlDoc=rh.getXmlDocument();
//
// System.out.println(xmlDoc);
首先要定义一个实现RowHandler的类,如XmlRowHandler,实现handleRow方法
import com.ibatis.sqlmap.client.event.RowHandler;
public class XmlRowHandler implements RowHandler {
public StringBuffer xmlDocument=new StringBuffer("<UserList>");
public void handleRow(Object o) {
// TODO Auto-generated method stub
User acc=(User)o;
xmlDocument.append("<User>");
xmlDocument.append("<UserID>");
xmlDocument.append(acc.getUserid());
xmlDocument.append("</UserID>");
xmlDocument.append("<username>");
xmlDocument.append(acc.getUsername());
xmlDocument.append("</username>");
xmlDocument.append("<password>");
xmlDocument.append(acc.getPassword());
xmlDocument.append("</password>");
xmlDocument.append("<department>");
xmlDocument.append(acc.getDepartment());
xmlDocument.append("</department>");
xmlDocument.append("</User>");
}
//取结果
public String getXmlDocument() {
xmlDocument.append("</UserList>");
return xmlDocument.toString();
}
}
queryWithRowHandler调用时指定rowhandler,对 每个对象执行,没有返回值
import java.util.ArrayList;
import java.util.List;
import com.ibatis.sqlmap.client.event.RowHandler;
public class FilterRowHandler implements RowHandler {
public List<User> list=new ArrayList<User>();
public void handleRow(Object o) {
// TODO Auto-generated method stub
User user=(User)o;
if("Sale".equals(user.getDepartment()))
list.add(user);
}
public List<User> getList() {
return list;
}
}
//RowHandler过滤数据
FilterRowHandler fh=new FilterRowHandler();
sqlMap.queryWithRowHandler("getAllUsers", null, fh);
List<User> ls=fh.getList();//符合条件的结果
在实际开发中,rowHandler很常用
分享到:
相关推荐
### ibatis高级特性详解 #### 一、引言 Ibatis 是一款优秀的持久层框架,它简化了 Java 开发者与数据库之间的交互过程。本文将详细介绍 ibatis 的一些高级特性,包括数据关联、延迟加载、动态映射以及事务管理等...
在《iBATIS In Action》一书中,作者详细介绍了如何使用iBATIS进行高级查询技术,包括处理复杂的集合属性、映射关系的继承、语句类型和DDL(Data Definition Language),以及如何处理大规模数据集。 1. **使用...
- **溯本求源**: 在深入学习iBatis等高级框架之前,深入了解JDBC的基础知识是非常重要的。这有助于更好地理解和运用这些框架。 - **实践操作**: 实践是最好的老师。尝试自己编写一些简单的JDBC示例,并逐步过渡到...
### ibatis技术总结 #### 1. 创建iBatis工程的步骤 在开始构建一个基于iBatis的应用之前,需要遵循一系列明确的步骤来确保项目的顺利进行: 1. **建立数据库**:首先需要设计并创建数据库,这一步骤至关重要,...
- **高级查询技术**:探索更复杂的查询技巧,如分页、动态SQL等。 - **事务管理**:理解iBATIS如何处理事务,确保数据的一致性和完整性。 - **动态SQL**:掌握如何使用iBATIS的动态SQL功能,实现条件语句和循环结构...
IBATIS允许程序员直接编写原生态SQL,并支持高级映射机制,使得Java对象和数据表之间能够轻松映射,极大地简化了基于SQL的程序的编码工作。 ### 复杂SQL查询解析 #### SQL语句结构分析 提供的SQL查询语句展示了...
总结,这份《Ibatis开发文档-技术文档》全面覆盖了Ibatis的核心功能,从基本概念到高级特性,对于任何想要学习或深入理解Ibatis的人来说,都是宝贵的参考资料。通过学习和实践其中的内容,开发者可以更好地利用...
2. **现有技术栈**:如果企业已经使用了与ibatis兼容的技术栈,那么继续使用ibatis可能会减少迁移成本和技术风险。 3. **团队技能**:如果开发团队对ibatis比较熟悉,那么选择ibatis可以更快地上手并减少培训成本。 ...
4. **缓存机制增强**:iBATIS3引入了更高级的缓存机制,包括一级缓存和二级缓存,以及自定义缓存实现,这有助于减少数据库访问次数,提高应用性能。 5. **类型处理器扩展**:iBATIS3允许开发者自定义类型处理器,...
iBATIS 2.0 开发指南是一份详尽的技术文档,旨在为开发者提供有关如何使用 iBATIS 进行高效数据库交互的方法和技巧。相较于其他 ORM(对象关系映射)框架如 Hibernate 和 Apache OJB 的“一站式”解决方案,iBATIS ...
在IT行业中,Ajax(Asynchronous JavaScript and XML)与iBatis(现在称为MyBatis)是两种非常重要的技术,它们分别在前端与后端发挥着关键作用。Ajax主要用于提升Web应用的用户体验,通过异步数据交换减少页面刷新...
总结起来,Spring、iBatis和jDom的结合提供了强大的数据处理能力,允许开发者在处理XML数据时保持代码的清晰和可维护性,同时利用Spring的高级特性简化应用的架构。理解和掌握这些技术的结合使用,对于提升Java...
iBATIS是一个支持普通SQL查询、存储过程以及高级映射的优秀持久层框架。相比于其他全表映射框架(如Hibernate),iBATIS提供了一种更为灵活的方式来处理SQL语句和结果集映射。iBATIS的核心功能是基于XML配置文件,...
- 支持自定义SQL查询、存储过程及高级映射。 - 提供了自动化的ORM(对象关系映射)支持,减少了重复代码的编写。 - 可以处理一对一、一对多、多对多等各种复杂的数据关系。 - 与Spring框架集成良好,便于在企业...
【标题】"ibatis3.0+jsp(demo)"是一个基于Java Web的示例项目,它结合了iBATIS 3.0数据访问框架和JSP(JavaServer Pages)技术来展示如何在实际应用中进行数据库操作。这个项目提供了一个完整的数据库交互流程,包括...
在实际项目中,`Ibatis`可以很好地与Spring框架集成,提供事务管理和其他高级功能。 总结来说,`Ibatis`是用于简化数据库操作的框架,`Abator`则是其配套的代码生成工具,帮助开发者快速生成`Ibatis`相关的DAO和...
掌握Ibatis的模糊查询技术,不仅可以使开发者编写出更灵活、可维护的代码,还能提高数据库查询性能,避免全表扫描,降低数据库负载。 总的来说,Ibatis的模糊查询功能是其强大之处之一,它使得开发者能够更加方便地...
该框架结合了面向对象的设计思想和传统的SQL查询技术,使得开发者能够在保持代码灵活性的同时,有效地与关系型数据库进行交互。 #### iBatis版本信息 - **版本**: 1.0 - **作者**: xiaxin (邮箱: xiaxin(at)gmail....