hibernate的事务 I
来源:互联网 发布:linux history 命令 编辑:程序博客网 时间:2024/06/03 16:14
hibernate的事务
@sunRainAmazing
事务
Spring的事务和Hibernate的事务有什么区别?
hibernate的事务通过显示的添加代码完成,Spring是通过动态代理切入运行时添加代码管理完成的, 所谓AOP,如果Spring配置的是Hibernate事务管理, 动态切入的代码应该是和手写hibernate事务管理基本一致的所以,无论用何种事务方式, 只要保证事务里面的调用的所有方法没有被其他的事务管理就可以实现事务
数据库事务的概念
数据库事务是指由一个或多个SQL语句组成的工作单元, 这个工作单元中的SQL语句相互依赖, 如果有一个SQL语句执行失败,就必须撤销整个工作单元。 在并发环境中,多个事务同时访问相同的数据资源时, 可能会造成各种并发问题,可通过设定数据库的事务隔离级别来避免, 还可采用悲观锁和乐观锁来解决丢失更新这一并发问题。 数据库事务必须具备ACID特征: A: Atomic原子性, 整个事务不可分割,要么都成功,要么都撤销。 C: Consistency一致性, 事务不能破坏关系数据的完整性和业务逻辑的一致性, 例如转账,应保证事务结束后两个账户的存款总额不变。 I: Isolation隔离性, 多个事务同时操纵相同数据时,每个事务都有各自的完整数据空间 D: Durability持久性, 只要事务成功结束,对数据库的更新就必须永久保存下来,即使系
hibernate控制事务的方法:
1. 调用sessionFactory不带参数的openSession方法, // 从连接池获得连接,Session自动把连接设为手工提交事务模式。 Session session = sessionFactory.openSession(); // 若调用带connection参数的openSession,则需要自己设置手工提交: connection.setAutoCommit(false); Session session = sessionFactory.openSession(connection); 2. 声明事务的开始边界 Transaction tx = session.beginTransaction(); 3. 提交事务 tx.commit(); 4. 撤销事务: tx.rollback(); 一个session可以对应多个事务, 但是应优先考虑让一个session只对应一个事务, 当一个事务结束或撤销后,就关闭session. 不管事务成功与否,最后都应调用session的close关闭session。 任何时候一个session只允许有一个未提交的事务,不能同时开始两个事务
事务隔离级别:
为了解决多个事务并发会引发的问题。 数据库系统提供了四种事务隔离级别供用户选择。 Serializable:串行化。隔离级别最高 Repeatable Read:可重复读。 Read Committed:读已提交数据。 Read Uncommitted:读未提交数据。隔离级别最差。
阅读全文
0 0
- hibernate的事务 I
- Hibernate的事务
- Hibernate的事务提交
- Hibernate的数据库事务
- Hibernate的事务控制
- hibernate的事务
- Hibernate的事务注意事项
- Hibernate事务的属性
- Hibernate的事务
- Hibernate的事务控制
- Hibernate的事务
- 【Hibernate】事务的概念
- hibernate的二级缓存 I
- Hibernate 事务管理器的事务提交
- Hibernate的事务和并发
- hibernate事务遇到的问题
- Hibernate的事务提交(ZZ)
- hibernate事务的传播特性
- S5PV210系列 (裸机十三)之解决X210开发板的软开关按键问题
- HashMap为什么是线程不安全的?
- 物理层5.20
- 计蒜客 强迫症的吃货 (dfs+枚举)
- SDUT 3904 C~K的幸运数字(数位DP)
- hibernate的事务 I
- C语言malloc多维数组
- 动态修改HtmlGenericControl的属性
- oracle中关于redo log和undo log的详解
- 关于linux入门的使用和编程的学习
- android 实现音量调节
- java十六进制转化为其他进制 二进制转化为其他进制 十进制转化为其他进制案例
- 大学英语四级写作试题必背之35句型
- Javascript实现前端AES加密解密功能