一、包结构
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源...
JavaEE源代码 Spring_PointcutJavaEE源代码 Spring_PointcutJavaEE源代码 Spring_PointcutJavaEE源代码 Spring_PointcutJavaEE源代码 Spring_PointcutJavaEE源代码 Spring_PointcutJavaEE源代码 Spring_...
项目工程搭建springcloud微服务的框架代码,通用
SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork的后续产品,已经融合在 Spring Web Flow 中
spring-cloud-codegen__Spring Cloud代码生成器
尚硅谷_佟刚_SpringData_源代码和PPT
Spring Cloud 提供完全的微服务技术体系,可以帮护开发者快速实现架构升级。SpringCloud 是目前最火热的构建微服务体系的解决方案。
尚硅谷_佟刚_Spring_代码及PPT.zip
1. 尚硅谷_SpringData_概述 2. 尚硅谷_SpringData_HelloWorld 3. 尚硅谷_SpringData_Repository接口 4. 尚硅谷_SpringData_Repository查询方法定义规范 5. 尚硅谷_SpringData_...12. 尚硅谷_SpringData_源代码和PPT
一个基于SpringBoot 2 的管理后台系统,包含了用户管理,组织机构管理,角色管理,功能点管理,菜单管理,权限分配,数据权限分配,代码生成等功能 系统基于Spring Boot2技术,前端采用了Layui2。数据库以MySQL为...
struts2_mybatis_spring_框架整合实例_数据库 源码中包括数据库文件 文档介绍
Spring_SpringMVC_SpringCloud面试题库,Spring框架是⼀个为Java应⽤程序的开发提供了综合、广泛的基础性支持的Java平台
中国移动业务管理系统(struts_spring_hibernate)代码
Java__Spring.mp4
spring+hibernate+struts 范例代码
eclipse_struts_hibernate_spring集成开发宝典 hibernate 代码
用于测试spring dubbo功能,提供对spring boot的支持
中国移动业务管理系统struts_spring_hibernate源代码学习
apid-framework_Spring_mvc_代码生成器, 模板里面是Springmvc 轻量级框架 ,生产的java代码可直接使用。 这个框架代码量非常少,很适合快速开发, 最爽的是自动生成代码啦
视频配套笔记_Spring Security OAuth2.0认证授权_v1.1 完整详细 pdf无障碍阅读,代码完整可复制