实训41 2018.6.2
Posted goxxiv
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实训41 2018.6.2相关的知识,希望对你有一定的参考价值。
hibernate中的事务:
事务:
事务特性:(ACID)
a 原子性
c 一致性
i 隔离性
d 持久性
什么是数据库ACID:
http://www.jdon.com/concurrent/acid-database.html
事务并发问题:
1.脏读
2.不可重复度
3.幻|虚读
事务的隔离级别
读未提交- 123
读已提交 - 23
可重复读(mysql默认级别)-3
串行化 - 没有问题
如何在hibernate中指定数据库的隔离级别
在项目中如何管理事务
业务开始之前打开事务,业务执行之后提交事务. 执行过程中出现异常.回滚事务.
在dao层操作数据库需要用到session对象.在service控制事务也是使用session对象完成. 我们要确保dao层和service层使用的使用同一个session对象
在hibernate中,确保使用同一个session的问题,hibernate已经帮我们解决了. 我们开发人员只需要调用sf.getCurrentSession()方法即可获得与当前线程绑定的session对象
注意1: 调用getCurrentSession方法必须配合主配置中的一段配置
注意2:通过getCurrentSession方法获得的session对象.当事务提交时,session会自动关闭.不要手动调用close关闭.
以上是关于实训41 2018.6.2的主要内容,如果未能解决你的问题,请参考以下文章