一、包结构
Spring的2.5版本关于iBatis只有两个包
package org.springframework.orm.ibatis;
package org.springframework.orm.ibatis.support;
API对这两个包的介绍如下
1. Package org.springframework.orm.ibatis
Package providing integration of iBATIS
Database Layer with
Spring concepts.
Class Summary
|
SqlMapClientFactoryBean
|
FactoryBean that
creates an iBATIS SqlMapClient.
|
SqlMapClientTemplate
|
Helper class that simplifies data access via the iBATIS SqlMapClient API, converting checked SQLExceptions into
unchecked DataAccessExceptions, following the org.springframework.dao exception
hierarchy.
|
2.Package org.springframework.orm.ibatis.support
Classes supporting the org.springframework.orm.ibatis package.
3. 包简单说明(中文版)
a)ibatis包提供Spring方式的iBatis封装
SqlMapClientCallback接口二次封装SqlMapExecutor
SqlMapClientOperations接口定义了SqlMapClient可进行的操作
SqlMapClientTemplate类简化SqlMapClient操作
SqlMapClientFactoryBean类提供生成SqlMapClient的工厂方法
b)ibatis.support包提供ibatis辅助类
AbstractLobTypeHandler类是LobHandler的基类
BlobByteArrayTypeHandler处理Blob
BlobSerializableTypeHandler处理Blob
ClobStringTypeHandler处理Clob
SqlMapClientDaoSupport通常作为开发者DAO基类
二、简要分析
1. 包下文件分析
##SqlMapClient
维护SqlMaps配置文件得到的sql伪脚本数据结构
(含数据库相关)
a)ibatis包
##SqlMapClientCallback
实现类处理自定义业务相关DAO处理(不负责数据库连接)
##SqlMapClientFactoryBean
提供生成SqlMapClient的工厂方法(从配置文件生成)
##SqlMapClientTemplate
分离SqlMapClient和业务DAO代码
简单来说就是分离取DB连接和基本操作(增删改查)
开发者一般调用这个
b)ibatis.support包
##XXXLobTypeHandler
处理Xlob
##SqlMapClientDaoSupport
对SqlMapClientTemplate封装
通常作为开发人员的DAO基类
2. 简单总结
a)关系分析
SqlMapClientFactoryBean可以生成SqlMapClient,
然后这个SqlMapClient通常放进SqlMapClientTemplate,
这个SqlMapClientTemplate一般再放入SqlMapClientDaoSupport作为开发人员的DAO基类。
b)开发人员关注点
DAO一般继承SqlMapClientDaoSupport,
然后从SqlMapClientDaoSupport取出SqlMapClient传伪SQL脚本ID即可操作数据库。
三、代码阅读笔记
#####
org.springframework.orm.ibatis
##SqlMapClientCallback
回调(业务逻辑相关操作)(连接无关)
Object doInSqlMapClient(SqlMapExecutor
executor) throws SQLException;
##SqlMapClientOperations
常用操作行为(增删改查)
##SqlMapClientTemplate
预定义DAO方法(增删改查)
分离了数据库连接和数据库操作
核心方法是execute()(模板方法)(连接相关)
api式方法queryForXXX()(业务相关)(连接无关)(调用execute获取连接)
转换异常到Spring非受检异常
##SqlMapClientFactoryBean
负责建立SqlMapClient
afterPropertiesSet()负责建立SqlMapClient
辅助处理Ibatis配置文件加载
辅助处理数据连接(含事物)
#####
org.springframework.orm.ibatis.support
注意此包和DefaultLobHandler及DefaultLobHandler$DefaultLobCreator有关联
DefaultLobHandler规范了Lob统一操作方式
##AbstractLobTypeHandler
提供存取Lob对象的模板方法
关键的setParameterInternal/getResultInternal子类负责
利用了LobHandler成员
LobCreatorSynchronization貌似处理Lob资源生成释放相关
##BlobByteArrayTypeHandler
实质是lobCreator.setBlobAsBytes/lobHandler.getBlobAsBytes
##BlobSerializableTypeHandler
实质是lobCreator.setBlobAsBytes/lobHandler.getBlobAsBytes
和ObjectInputStream/ObjectOutputStream相关的序列化处理
##ClobStringTypeHandler
实质是lobCreator.setBlobAsBytes/lobHandler.getBlobAsBytes
##SqlMapClientDaoSupport
支持SqlMapClientTemplate封装的SqlMapClientDao
可做DAO父类
貌似可享受SQLExceptionTranslator
分享到:
相关推荐
JavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源代码 Spring_AdvicesJavaEE源...
本项目"基础框架代码_springcloud_repeatoj7_微服务基础框架代码_springcloud项目_",提供了一个通用的SpringCloud微服务框架搭建方案,旨在帮助开发者快速理解和构建自己的微服务应用。 首先,让我们深入了解...
JavaEE源代码 Hibernate_SpringJavaEE源代码 Hibernate_SpringJavaEE源代码 Hibernate_SpringJavaEE源代码 Hibernate_SpringJavaEE源代码 Hibernate_SpringJavaEE源代码 Hibernate_SpringJavaEE源代码 Hibernate_...
标题中的"开发Spring MVC应用程序补充—程序源码下载.rar_spring_spring mvc_spring mvc 源码_sp"表明这是一个关于Spring MVC框架的开发教程,其中包含了源代码供学习者参考。Spring MVC是Spring框架的一个核心组件...
在本示例中,"Spring示例_Printer_Spring_AOP_Spring_Proxy" 主要关注的是Spring框架中的核心概念,特别是AOP(面向切面编程)和代理模式的应用。让我们深入探讨这些知识点。 首先,Spring框架是Java开发中最常用的...
此外,Spring3还提供了对JDBC、JPA、Hibernate等持久层技术的集成支持。 Hibernate是一个强大的ORM(对象关系映射)框架,它简化了数据库操作,允许开发者用Java对象的方式来操作数据库记录,而无需编写SQL语句。...
spring-cloud-codegen__Spring Cloud代码生成器
"SpringTest_springtest_spring_java_Framework_"这个标题暗示了我们讨论的是关于Spring框架的测试方面,可能是使用Spring进行单元测试或集成测试的一些实践。 描述中的“简单小应用,实现了一些基本的功能”可能是...
JavaEE源代码 Spring_PointcutJavaEE源代码 Spring_PointcutJavaEE源代码 Spring_PointcutJavaEE源代码 Spring_PointcutJavaEE源代码 Spring_PointcutJavaEE源代码 Spring_PointcutJavaEE源代码 Spring_...
这个`springjdbc.zip`压缩包很可能包含了示例代码和配置文件,用于演示如何使用Spring JDBC来执行基本的数据库操作,如增、删、改、查。 1. **Spring JDBC模块**:Spring JDBC模块主要由`org.springframework.jdbc`...
1. **DataSource管理**:Spring支持各种类型的DataSource,如Apache Commons DBCP或C3P0,可以自动配置、管理数据库连接池,提高应用性能。 2. **JdbcTemplate**:这是Spring JDBC最常用的工具类,提供了大量的模板...
《Spring Framework 2.5 开发参考手册》是Spring框架的重要文档,主要涵盖了Spring...通过阅读《Spring Framework 2.5 开发参考手册》,开发者可以深入理解Spring的各个方面,并熟练运用其功能来构建高效的企业级应用。
《尚学堂_Spring_0100_模拟Spring》 在深入探讨Spring框架之前,我们需要先理解Spring的核心理念。Spring是一个开源的Java平台,它主要为构建企业级应用提供了全面的编程和配置模型。它的核心特性是依赖注入...
标题中的"spring-boot-project.zip_angularjs_largefkb_spring_spring-boot_sp"暗示这是一个包含Spring Boot、AngularJS以及可能的大型数据库应用的项目。描述简单地提到了"spring-boot,mybatis,angularjs",这意味...
开发者可以通过研究这些代码,了解Spring MVC和Hibernate在实际项目中的应用,以及如何将它们有效地集成在一起。对于想要学习或改进论坛系统的开发者来说,这是一个极好的学习资源。 总的来说,Spring MVC与...
此外,Spring框架还包含了其他模块,如Spring MVC(用于构建Web应用)、Spring JDBC和MyBatis集成(简化数据库操作)、Spring ORM(支持Hibernate等ORM框架)、Spring AOP(实现切面编程)、Spring Test(支持单元...
文件“iBATIS_Spring_struts_demo”很可能是这个项目的源码包,包含了相关的配置文件、Java源代码和可能的资源文件。通过分析这个DEMO,开发者可以学习如何配置这些框架,理解它们如何协同工作,以及在实际项目中...
标题中的“FF.MSOL.SOA.rar_jpa hibernate_spring hibernate_spring mvc”表明这是一个关于Java企业级开发的资源包,其中涉及到的主要技术栈是JPA(Java Persistence API)、Hibernate、Spring以及Spring MVC。...
2009年,Spring 3.0发布,全面支持Java EE 6,增加了对RESTful服务、Groovy的支持,并引入了Spring Expression Language (SpEL)。 2014年的Spring 4.0带来了对Java 8的全面支持,改进了对WebSocket和反应式编程的...
1. 尚硅谷_SpringData_概述 2. 尚硅谷_SpringData_HelloWorld 3. 尚硅谷_SpringData_Repository接口 4. 尚硅谷_SpringData_Repository查询方法定义规范 5. 尚硅谷_SpringData_...12. 尚硅谷_SpringData_源代码和PPT