mybatis原理

本文介绍了MyBatis中的事务管理机制,包括JdbcTransaction和ManagedTransaction两种方式,并详细阐述了它们的工作原理及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接口Transaction

        方法:getConnection()、commit()、rollback()、close

继承类:

      JdbcTransaction(使用Jdbc的事务管理机制)

      ManagedTransaction(使用manage的事务管理机制,即mybatis自身不会执行事务管理,交由其他的容器进行(如WebLogic等))

mybatis配置:

             configition->environments-->environment-->transactionmanage(1),datasource

                                ->mapper

             即程序启动的时候,会加载mybatis配置文件,通过事务管理和数据源组成环境中去

             (1)处的transactionmanager是配置事务机制的类型(jdbc,managed)

事务工厂:

             TransactionFactory---->JdbcTransactionFactory ------------>JdbcTrasaction

                                               ----->ManagedTransactionFactory -------------->ManagedTransaction

事务类型:

            JdcbTransaction:

                                获取数据连接池connection对象,通过这个对象对事务进行开始、提交、回滚,JdbcTransaction就是对jdbc事务处理机制的封装

             ManagedTransaction:

                               mybatis自身不进行事务处理,而是通过web容器进行事务生命周期的管理

                               若本地程序,执行任何的增删改操作,即使commit,也不会数据库产生影响,因为本地程序本身没有事务处理机制




mybatis整体流程:

                 1加载和初始化配置

                             配置文件:java注解、配置文件

                             封装成MappedStatement(传入参数、sql语句、返回结果)

                             保存在内存中

                 2接受处理请求

                              调用数据库API接受数据请求,请求处理层进行处理

                 3数据处理

                            (1) 根据请求的sqlID和参数,找到相应的MapperStatement

                            (2)调用连接对象执行sql语句

                            (3)将返回结果进行映射

                            (4)释放连接资源

                 4数据返回

mybatis的功能架构:

              1数据库API层:提供API用于数据请求的处理

               2数据处理层:sql查询、解析、执行、对查询结果进行映射等

               3数据基础层:事务管理、配置加载、缓存管理、连接管理

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值