ibatis源码分析—运行流程解析(一)

原创 2015年11月19日 16:03:46

一、主要类

1、SqlMapExecutor。定义了CRUD操作的接口,包括insert、update、delete、select。

2、SqlMapTransactionManager。定义了事物操作接口,负责执行环境。

3、SqlMapClient。ibatis的门面,xml解析后的数据保存到该对象中,用于后续的数据交换。

   ExtendedSqlMapClient。继承了SqlMapClient,并且定义了获取SqlMapExecutorDelegateMappedStatement的方法。

   SqlMapClientImpl。ExtendedSqlMapClient的实现类,真正的数据持有者。

4、SqlMapSession。执行环境会话类。

   SqlMapSeesionImpl。SqlMapSession实现类,每次交换数据时,通过该类保持执行环境。

5、SqlMapExecutorDelegate。该类是一个代理类,sql文件解析成的对象都放在这个类里。mappedStatements负责保存CURD对象,

parameterMaps负责保存parameterMap对象,resultMaps负责保存resultMap对象。同时设置了requestPool和sessionPool两个用于数据交换的执行环境池,执行会话是先建立session,然后将session放入request中,通过request保持执行环境。


6、MappedStatement。statement的基础接口,定义了获取statement的ParameterMap、ResultMap以及Sql等方法。

   BaseStatement。MappedStatement的实现类。

   GeneralStatement。继承了BaseStatement,真正的逻辑处理类,从request中获取ParameterMap,ResultMap,从ParameterMap中获取Paramter,调用SqlMapExecutor的executeQuery()方法进行查询。

ibatis调用Oracle中procedure和function

. 一、调用存储过程 Oracle代码 procedure proc_pos_check(p_gtin  in varchar2,                            p_s...

iBatis框架使用 编程4步

iBatis框架是Java持久层开发框架,说白了就是前人写了一部分代码(针对数据库操作),我们要做的就是再次开发,拿来框架直接使用。   我们自己开发时,dao层的sql语句都是写死在程序中的,如果查...

ibatis源码学习(四)动态SQL的实现原理

动态SQL是ibatis框架的一个重要特性,本文将深入分析ibatis框架中动态SQL的实现原理。动态sql的使用参见官方文档:Dynamic SQL。本文使用的ibatis版本为2.3.4。  ...

Ibatis 源码解析

huo公司的ibatis代码主要对获取数据源的部分进行了二次开发,总体来说和开源的ibatis差不多。 ibatis的使用共分两部分,ibatis的的初始化以及ibatis的数据库访问。对源码的分析...

ibatis源码分析—配置文件解析(2)

ibatis阅读笔记

Spring源码分析2 — XML配置文件的解析流程

1 介绍创建并初始化spring容器中,关键一步就是读取并解析spring XML配置文件。这个过程比较复杂,本文将详细分析整个流程。先看涉及到的关键类。XmlWebApplicationContex...

Spring源码分析3 — spring XML配置文件的解析流程

1 介绍创建并初始化spring容器中,关键一步就是读取并解析spring XML配置文件。这个过程比较复杂,本文将详细分析整个流程。先看涉及到的关键类。XmlWebApplicationContex...

Monkey源码分析之运行流程

  • 2017年09月14日 11:01
  • 113KB
  • 下载

ibatis源码学习1_整体设计和核心流程

转自http://www.iteye.com/topic/1121467 本文主要从ibatis框架的基本代码骨架进行切入,理解ibatis框架的整体设计思路,各组件的实现细节将在后文进行分析。...
  • sjf8013
  • sjf8013
  • 2012年12月01日 13:27
  • 669

读ibatis源码—为什么说SqlMapClient是线程安全的

Ibatis做为一个半自动化的Orm框架有他的缺点和优点。在这里我就不宽泛的说这些了。就说说为什么SqlMapClient是线程安全的,他是怎么实现的。 提出问题: private static S...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ibatis源码分析—运行流程解析(一)
举报原因:
原因补充:

(最多只允许输入30个字)