1.事务
事务的特性
a.原子性
b.一致性
c.隔离性
d.持久性
2.事务并发问题
1.脏读
2.不可重复读
3.幻/虚读
3.事务的隔离级别
读未提交-123
读已提交-23
可重复提交(mysql 默认级别是3)
串行化-没有问题
4.如何在hibernate中指定数据库的隔离级别
5、在项目中如何管理事务?
A:业务开始之前打开事务,业务执行后提交事务,执行过程中出现异常,回滚事务。
B:在dao层操作数据库需要使用到session对象,在
service控制事务也用到session对象。
我们要确保二者是使用的是同一个session对象。
C:在hibernate中,确保使用一个session的问题,
hibernate已经搞好了。
我们只需要调用sf.getCurrentSession()方法就可以获
得与当前线程绑定的session对象。
注意1: 调用getCurrentSession方法必须配合主配置 中的一段配置
<property name="hibernate_current_session_context_class">
thread
</property>
注意2:
通过getCurrentSession方法获得的session对象.当事务
提交时,session会自动关闭.不要手动调用close关闭.