`

Ibatis原理分析

 
阅读更多
Ibatis框架架构如下图所示:






     外部Java Application调用SqlMapClient接口,经过SqlMapSession、SqlMapExecutorDelegate等实现类,通过PersistentObject、ParameterMap、ResultMap、

MappedStatement、Transaction等,基于JDBC、JTA等事务操作,最后调用SqlExecutor操作类对数据库进行操作

   SQL Map框架可以专门用于O/R映射,O/R映射是JavaBean对象到数据库中关系表的映射。SQL Map框架使用XML描述符将JavaBean映射到SQL语言,执行SQL

并将结果映射返回对象,其核心功能是围绕MappedStatement进行的。

   在实现O/R时,通常是通过配置SqlMapConfig.xml来定义总体变量、事务管理模式、连接数据库信息,同时,指定包含MappedStatements,ResultMap、ParameterMap的映射文件位置等内容,然后通过SQL Map API 将JavaBeans对象映射到PreparedStatement参数和ResultSet,并完成持久化操作



  SQL Map提供了一个简洁的框架,使用简单的XML描述文件将Java Bean,Map实现和基本数据类型的包装类(String,Integer等)映射成JDBC的PreparedStatement。以下流程描述了SQL Maps的高层生命周期:
将一个对象作为参数(对象可以是Java Bean,Map实现和基本类型的包装类),参数对象将为SQL修改语句和查询语句设定参数值。


    1) 执行mapped statement。这是SQL Maps最重要的步骤。SQL Map框架将创建一个PreparedStatement实例,用参数对象为PreparedStatement实例设定参数,执行 PreparedStatement并从ResultSet中创建结果对象。


    2) 执行SQL的更新数据语句时,返回受影响的数据行数。执行查询语句时,将返回一个结果对象或对象的集合。和参数对象一样,结果对象可以是Java Bean,Map实现和基本数据类型的包装类



结合传统的JDBC操作,转化为SQL Map要执行如下操作:

   配置SQL Map配置文件,载入JDBC驱动程序和数据库连接(包括事务管理模式和DataSource模式)等信息
   配置SQL Map映射文件,包括parameterMap、resultMap、SQL等信息,其中parameterMap是输入参数信息,resultMap是输出结果信息,sql是SQL语句部分
  根据SQL Map配置文件配置信息,加载配置的JDBC驱动程序
  根据SQL Map配置文件,建立数据库连接
  根据SQL Map映射文件中的sql信息和parameterMap信息,建立符合JDBC规范的SQL语句和输入参数
  执行SQL 语句
  处理结果集,把数据库结果集转化为SQL Map映射文件中的resultMap格式内容
  关闭数据库连接
  • 大小: 300.2 KB
分享到:
评论

相关推荐

    ibatis 框架原理实现

    Ibatis允许开发者自定义插件,通过拦截器模式增强SqlSession或Executor的行为,例如日志记录、性能分析等。 这个自己编写的Ibatis框架实现,虽然可能在功能上与官方版本有所差异,但基本原理和核心思想是一致的,...

    深入分析 iBATIS 框架之系统架构与映射原理

    **深入分析 iBATIS 框架之系统架构与映射原理** iBATIS 是一个优秀的持久层框架,它允许开发者将 SQL 语句与 Java 代码分离,从而简化了数据库访问层的开发工作。本篇文章将深入探讨 iBATIS 的核心系统架构以及其...

    iBATIS框架源码剖析源码

    通过深入分析iBATIS的源码,开发者不仅可以了解其工作原理,还能学习到设计模式、数据库访问的最佳实践以及如何优雅地处理数据库操作。对于提升Java开发者的技能和理解数据库访问层的实现有极大的帮助。在实际开发中...

    iBATIS-DAO-2.3.4.726.rar_com.ibatis.dao_iBATIS dao 2_iBatis DAO_

    在这个2.3.4.726版本的源码中,我们可以深入理解iBATIS DAO的工作原理,并通过添加注释来帮助我们更好地掌握其实现细节。 首先,iBATIS DAO的核心概念是SQL Maps,它们定义了数据库操作的SQL语句,并将其映射到Java...

    Ibatis3手册 Ibatis3参考手册

    本篇文章基于“Ibatis3手册 Ibatis3参考手册”的标题及描述,深入解析Ibatis3的核心概念、架构特点以及如何进行实际操作,旨在帮助读者全面理解Ibatis3的工作原理与应用场景。 ### 一、Ibatis3简介 Ibatis3是一款...

    ibatis源码

    描述中的"ibatis框架源码剖析书中附带的光盘,ibatis源码分析"暗示这可能是一个学习资源,用于深入理解iBATIS的工作原理,可能包括了对源码的详细解读和分析。 **iBATIS核心知识点** 1. **SQL映射**:iBATIS的核心...

    IBATIS_IN_ACTION

    本书详细介绍了iBATIS这一流行开源框架的核心概念、工作原理以及在实际项目中的应用技巧,是iBATIS学习者和使用者不可或缺的参考资料。 ### IBATIS哲学 iBATIS的哲学强调简洁性与灵活性,它旨在提供一个轻量级的...

    ibatis

    这个文档可能会涵盖如何在Spring中配置和使用iBATIS,以及它们之间的协同工作原理。 2. **iBATIS-SqlMaps-2_cn.pdf**:这很可能是iBATIS SQL Maps 2版本的中文版官方文档。SQL Maps是iBATIS的核心组件,负责定义SQL...

    ibatis 开发指南 2004

    这本指南对于初学者和有经验的开发者来说都是宝贵的资源,它帮助读者理解iBatis的工作原理,掌握其核心特性和最佳实践,从而更高效地进行数据库操作。通过阅读《iBatis 开发指南》,开发者可以更好地掌握Java世界的...

    ibatis 开发指南 和 iBATIS-SqlMaps两本图书

    《iBATIS-SqlMaps》则可能更侧重于实战和案例分析,通过具体的项目场景来展示如何设计和实施iBATIS解决方案,以及如何利用iBATIS实现更高效的数据操作。 两本书结合阅读,开发者可以从理论到实践全面掌握iBATIS框架...

    ibatis学习资料汇总

    深入研究iBatis源码有助于理解其内部工作原理,包括如何解析XML配置文件,如何执行SQL语句,以及如何进行结果映射。源码分析可以帮助开发者更好地定制和优化自己的应用。 六、iBatis实践项目 通过实践项目,可以...

    ibatis系列 详细介绍

    通过阅读这三份文档,你将能够深入理解iBATIS的工作原理,掌握其配置和使用技巧,同时也能学习到如何有效地利用iBATIS实现数据库操作的半封装,提高开发效率。在实际项目中,iBATIS可以很好地适应各种复杂的数据库...

    Ibatis 练习Demo和笔记

    5. **缓存机制**:分析Ibatis的一级和二级缓存,以及如何自定义缓存策略。 6. **事务管理**:讨论Ibatis的自动和手动事务控制,以及如何与Spring事务管理结合使用。 7. **插件机制**:介绍如何编写和使用Ibatis的...

    ibatis guide

    在描述中提到的博文链接是一个ITEYE博客的文章,可能提供了更多关于iBATIS使用或分析的详细信息,但具体内容由于没有给出,我们只能根据常规的iBATIS知识进行讲解。 **iBATIS 概述** iBATIS 是由 Apache Software ...

    ibatis分页

    在标签中提到的“源码”可能意味着博主分析了iBATIS的源代码来解释其分页机制,这有助于深入理解iBATIS的工作原理,以及如何根据具体需求进行定制。而“工具”可能是指一些辅助工具,如MyEclipse、IntelliJ IDEA中的...

    ibatis案例

    通过分析这个“ibatisDemo”,开发者不仅能理解Ibatis的基本工作原理,还能学习到如何在实际项目中配置和使用Ibatis,提高数据库操作的效率和代码质量。这是一个非常有价值的实践案例,对于提升Java Web开发技能具有...

    关于Ibatis的jar包

    - **日志库**:如log4j或slf4j,用于记录Ibatis的执行日志,帮助调试和性能分析。 - **其他依赖**:如ognl,用于表达式语言支持,使得在XML中可以执行更复杂的逻辑。 学习Ibatis,除了理解这些基本概念,还需要...

    iBATIS 模板

    iBATIS,全称为“Java SQL Mapping Framework”,是一款在Java应用程序中进行数据库操作的开源框架..."iBATIS test"这个文件可能是用于测试iBATIS模板配置和功能的示例,你可以通过分析和运行它来加深对iBATIS的理解。

    ibatis-2.3.0.677.jar

    描述 "ibatis jar src ibatis 2 3 0 677" 暗示这个压缩包可能包含了 iBATIS 框架源代码的副本,这对于开发者来说非常有价值,因为他们可以直接查看和理解框架内部的工作原理,进行定制化开发或者调试问题。...

Global site tag (gtag.js) - Google Analytics