hibernate事务管理:
事务是什么:
事务transaction是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不准确,或者在修改时受到用户干扰。事务有四大特性:
1.原子性(action):事务是由一个或多个行为绑在一起组成,好像是一个单独的工作单元,原子性确保在事务中的所有操作要么都发生,要么都不发生。
2.一致性(Consistent):一旦一个事务结束了(不管成功与否),系统所处的状态和它的业务规则是一致的。即数据应当不会被破坏。
3.隔离性(Isolated):事务应该允许多个用户操作同一个数据,一个用户的操作不会和其他用户的操作相混淆。
4.持久性(Durable):一旦事务完成,事务的结果应该是持久化。
hibernate事务的原理:
Hibernate session 缓存被称为Hibernate的第一级缓存。SessionFactory的外置缓存称为Hibernate的二级缓存。这个缓存都位于持久层,它们存放的都是数据库数据的拷贝。SessionFactory的内置缓存存放元数数据和预定SQL,SessionFactory的内置缓存是只读缓存。
Sessionfactory负责创建Session,SessionFactory是线程安全的,多个并发线程可以同时访问一个SessionFactory并从中获取Session实例。
2.Session作为贯穿Hibernate的持久化管理器核心,提供了众多的持久化的方法,比如save(),update(),dalete,find等,通过这些方法我们可以透明的完成对象的增删改查,这里所谓的透明,Session在读取,创建和删除射影的实体的实例时,这一系列的操作将被转换为对数据库表中数据的增加,修改,查询和删除操作。
Session有以下的特点:
1)不是线程安全的,应该避免多个线程共享同一个Session实例
2)Session实例时轻量级的,所谓轻量级:是指他的创建和删除不需要消耗太多资源
3).Session对象内部有一个缓存,被称为Hibernate第一缓存,他存放被当前工作单元中加载的对象,每个Session实例都有自己的缓存。