`
crazycat03
  • 浏览: 175860 次
  • 性别: Icon_minigender_2
  • 来自: 呼和浩特
社区版块
存档分类
最新评论

ibatis 高级查询技术

阅读更多

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高级特性详解 #### 一、引言 Ibatis 是一款优秀的持久层框架,它简化了 Java 开发者与数据库之间的交互过程。本文将详细介绍 ibatis 的一些高级特性,包括数据关联、延迟加载、动态映射以及事务管理等...

    ibatis 文档查询

    在《iBATIS In Action》一书中,作者详细介绍了如何使用iBATIS进行高级查询技术,包括处理复杂的集合属性、映射关系的继承、语句类型和DDL(Data Definition Language),以及如何处理大规模数据集。 1. **使用...

    mysql,jdbc详解,与ibatis对比。批量查询,分页处理。

    - **溯本求源**: 在深入学习iBatis等高级框架之前,深入了解JDBC的基础知识是非常重要的。这有助于更好地理解和运用这些框架。 - **实践操作**: 实践是最好的老师。尝试自己编写一些简单的JDBC示例,并逐步过渡到...

    ibatis技术总结

    ### ibatis技术总结 #### 1. 创建iBatis工程的步骤 在开始构建一个基于iBatis的应用之前,需要遵循一系列明确的步骤来确保项目的顺利进行: 1. **建立数据库**:首先需要设计并创建数据库,这一步骤至关重要,...

    IBATIS_IN_ACTION

    - **高级查询技术**:探索更复杂的查询技巧,如分页、动态SQL等。 - **事务管理**:理解iBATIS如何处理事务,确保数据的一致性和完整性。 - **动态SQL**:掌握如何使用iBATIS的动态SQL功能,实现条件语句和循环结构...

    IBATIS开发使用实例

    IBATIS允许程序员直接编写原生态SQL,并支持高级映射机制,使得Java对象和数据表之间能够轻松映射,极大地简化了基于SQL的程序的编码工作。 ### 复杂SQL查询解析 #### SQL语句结构分析 提供的SQL查询语句展示了...

    Ibatis中文版教程

    ### 三、iBatis高级用法 除了基本的查询,iBatis还支持动态SQL、批量操作、分页等功能,这些都是在实际项目中非常实用的能力。例如,动态SQL允许开发者根据不同的条件构建SQL语句,而批量操作则可以提高数据处理的...

    ibatis开发文档-技术文档

    总结,这份《Ibatis开发文档-技术文档》全面覆盖了Ibatis的核心功能,从基本概念到高级特性,对于任何想要学习或深入理解Ibatis的人来说,都是宝贵的参考资料。通过学习和实践其中的内容,开发者可以更好地利用...

    ibatis Guide

    #### ibatis高级特性 - **动态映射**:ibatis允许在SQL语句中使用动态参数,如`if`、`choose`、`foreach`等标签,使SQL更具灵活性。 - **事务管理**:支持基于JDBC和JTA的事务管理机制,可以根据应用的需求选择适当...

    ibatis和hibernate的简单介绍

    2. **现有技术栈**:如果企业已经使用了与ibatis兼容的技术栈,那么继续使用ibatis可能会减少迁移成本和技术风险。 3. **团队技能**:如果开发团队对ibatis比较熟悉,那么选择ibatis可以更快地上手并减少培训成本。 ...

    ibatis3资料-介绍

    4. **缓存机制增强**:iBATIS3引入了更高级的缓存机制,包括一级缓存和二级缓存,以及自定义缓存实现,这有助于减少数据库访问次数,提高应用性能。 5. **类型处理器扩展**:iBATIS3允许开发者自定义类型处理器,...

    iBATIS 2.0 开发指南

    iBATIS 2.0 开发指南是一份详尽的技术文档,旨在为开发者提供有关如何使用 iBATIS 进行高效数据库交互的方法和技巧。相较于其他 ORM(对象关系映射)框架如 Hibernate 和 Apache OJB 的“一站式”解决方案,iBATIS ...

    ajax和ibatis的综合应用例子

    在IT行业中,Ajax(Asynchronous JavaScript and XML)与iBatis(现在称为MyBatis)是两种非常重要的技术,它们分别在前端与后端发挥着关键作用。Ajax主要用于提升Web应用的用户体验,通过异步数据交换减少页面刷新...

    spring+ibatis+jDom递归生成

    总结起来,Spring、iBatis和jDom的结合提供了强大的数据处理能力,允许开发者在处理XML数据时保持代码的清晰和可维护性,同时利用Spring的高级特性简化应用的架构。理解和掌握这些技术的结合使用,对于提升Java...

    Spring与iBATIS的集成

    iBATIS是一个支持普通SQL查询、存储过程以及高级映射的优秀持久层框架。相比于其他全表映射框架(如Hibernate),iBATIS提供了一种更为灵活的方式来处理SQL语句和结果集映射。iBATIS的核心功能是基于XML配置文件,...

    ibatis开发手册及入门教程

    - 支持自定义SQL查询、存储过程及高级映射。 - 提供了自动化的ORM(对象关系映射)支持,减少了重复代码的编写。 - 可以处理一对一、一对多、多对多等各种复杂的数据关系。 - 与Spring框架集成良好,便于在企业...

    ibatis3.0+jsp(demo)

    【标题】"ibatis3.0+jsp(demo)"是一个基于Java Web的示例项目,它结合了iBATIS 3.0数据访问框架和JSP(JavaServer Pages)技术来展示如何在实际应用中进行数据库操作。这个项目提供了一个完整的数据库交互流程,包括...

    abator Ibatis

    在实际项目中,`Ibatis`可以很好地与Spring框架集成,提供事务管理和其他高级功能。 总结来说,`Ibatis`是用于简化数据库操作的框架,`Abator`则是其配套的代码生成工具,帮助开发者快速生成`Ibatis`相关的DAO和...

    07_ibatis教程_模糊查询实体对象.rar )

    掌握Ibatis的模糊查询技术,不仅可以使开发者编写出更灵活、可维护的代码,还能提高数据库查询性能,避免全表扫描,降低数据库负载。 总的来说,Ibatis的模糊查询功能是其强大之处之一,它使得开发者能够更加方便地...

    ibatis 开发指南,开发手册 txt 版

    该框架结合了面向对象的设计思想和传统的SQL查询技术,使得开发者能够在保持代码灵活性的同时,有效地与关系型数据库进行交互。 #### iBatis版本信息 - **版本**: 1.0 - **作者**: xiaxin (邮箱: xiaxin(at)gmail....

Global site tag (gtag.js) - Google Analytics