Mybatis实现事务的方式和缓存

来源:互联网 发布:js去隐藏域传值 编辑:程序博客网 时间:2024/06/08 16:34

1.事务

事务是单个逻辑工作单元执行的一系列操作。要么全部执行,要么全部不执行。

事务结束的两种方式:1.事务所有操作步骤全部成功执行,事务提交

                                    2.如果其中一个步骤失败,将发生回滚,撤销到事务开始之前的操作。

事务的四个特征ACID 

          原子性    一致性        隔离性      持久性

2.Mybatis事务实现方式

                1)使用JDBC的事务管理机制:是在【jdbc程序】负责管理数据库连接的生命周期(提交、回滚)的时候。如果将TransactionManager 属性设置成JDBC,MyBatis内部将使用JdbcTransactionFactory类创建TransactionManager。例如,部署到ApacheTomcat的应用程序,需要应用程序自己管理事务

                2)使用MANAGED事务管理机制:如果将TransactionManager属性设置成MANAGED时,MyBatis内部使用ManagedTransactionFactory 类创建事务管理器TransactionManager。例如,当一个Java EE的应用程序部署在类似JBoss,WebLogic,GlassFish应用服务器上时,它们会使用EJB进行应用服务器的事务管理能力。在这些管理环境中,你可以使用MANAGED事务管理器。

                注:Managed 是托管的意思,即我们编写的应用程序本身不去管理事务,而是把事务管理交给应用所在的服务器进行管理。

3.Mybatis缓存

                缓存:将数据库中的数据缓存到内存中,是很多程序提高性能的做法

                mybatis有一级缓存和二级缓存

                默认情况下会启动一级缓存 即:当你使用同一个session接口对象调用相同的select语句 则直接从缓存中获得结果。而不是在查一遍数据库

                二级缓存:在不同的session对象中之间可以共享缓存数据

                默认情况下:被二级缓存保存的对象需要实现序列化接口
                二级缓存补充说明
                    1. 映射语句文件中的所有select语句将会被缓存
                    2. 映射语句文件中的所有insert,update和delete语句会刷新缓存
                    3. 缓存会使用Least Recently Used(LRU,最近最少使用的)算法来收回。
                    4. 缓存会根据指定的时间间隔来刷新。
                    5. 缓存会存储1024个对象

 

 

原创粉丝点击