ibatis源码浅析- 初探

本文浅析了Ibatis的核心类,包括SqlMapExecutor的CRUD操作API,SqlMapTransactionManager的事务管理,以及SqlMapClient和SqlMapSession的角色。Ibatis的API入口有两种,可以通过SqlMapClientBuilder构建SqlMapClient或使用SqlMapSession进行操作,并在完成后关闭Statement。在插入操作中,SqlMapExecutorDelegate协调执行环境并控制事务。MappedStatement负责存储SQL映射文件的定义,而SqlExecutor封装了Statement的执行。SessionScope则管理一次请求的上下文,包括可能的多个数据库操作和事务。
摘要由CSDN通过智能技术生成

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) 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值