ibatis源码浅析- 初探

ibatis核心类

 

    SqlMapExecutor:定义了数据库curd操作api

    SqlMapTransactionManager : 主要定义了事务管理功能

    SqlMapClient:继承SqlMapExecutor, SqlMapTransactionManager接口  也就具有curd操作 事务管理行为

    SqlMapSession: 它有SqlMapClient实现接口一样,  SqlMapClient的实例中持有SqlMapSession的引用  , 也就是说在SqlMapClient的基础上 包装了一层, SqlMapSession 的实例对于SqlMapClient来说是线程安全的 在SqlMapClient中主要使用到 了 ThreadLocal来控制

   从以上可以看出ibatis api入口有两个

  1. 通过 SqlMapClientBuilder 的buildSqlMapClient方法 构造SqlMapClient的实例来完成curd操作  这个也是最传统的

  2.以SqlMapSession为入口  在执行完curd操作后  调用close方法 关闭Statement

  inser操作时序图

 

    SqlMapExecutorDelegate: 这个类耦合了 curd的执行环境 通过调用其他各个组件类的方法 完成操作  事务就在此控制

    MappedStatement : 保存sqlmap 映射文件statement的定义  还会涉及到处理sql 参数(ParameterMap)   返回结果(ResultMap)

    SqlExecutor: 包装了Statement的执行

    StatementScope:一次数据库操作上下文

    SessionScope:一次请求上下文, 一次请求可能包括多个数据库操作, 同一事务.

   MappedStatement 类图

  

转载于:https://www.cnblogs.com/java-wl/archive/2012/06/10/2923150.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值