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个对象
- Mybatis实现事务的方式和缓存
- Mybatis级联查询和缓存
- MyBatis关于识别器和缓存的简单理解
- ios-发生请求的两种方式和缓存策略
- MyBatis学习四 懒加载和缓存
- MyBatis(三) 事务管理和缓存机制
- Mybatis懒加载和缓存机制
- hibernate的session和缓存
- 内存和缓存的区别!
- 分布式和缓存的思考
- Bitmap的加载和缓存
- 内存和缓存的区别
- 内存和缓存的区别
- shiro的注解和缓存
- 用NSURLPROTOCOL实现代理和缓存
- 用NSURLPROTOCOL实现代理和缓存
- 读写锁和缓存类实现
- 对象的状态和缓存的关系
- Mysql性能优化案例
- spring Cloud 初次使用容易忽略环节
- mybatis-generator 代码自动生成工具
- linux下创造一个假终端,同终端操作实现相同功能
- SQL删除重复数据项只保留一项
- Mybatis实现事务的方式和缓存
- hdu1061 Rightmost Digit 【快速幂模板】
- BZOJ 2127: happiness
- 编辑距离和最长公共子序列(动态规划经典题)
- mybatis中#{}和${}的区别
- Apache Spark 三种分布式部署方式比较
- java springboot与redis整合
- NYOJ 小猴子下落(找规律求解)
- 廖雪峰python 学习日记