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: 这个类耦合了

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

被折叠的 条评论
为什么被折叠?



