第14章 Hibernate的体系结构及接口
来源:互联网 发布:matlab矩阵的共轭转置 编辑:程序博客网 时间:2024/04/19 19:27
熟悉Hibernate的体系结构
SessionFactory(org.hibernate.SessionFactory):该对象是JavaBean对象与数据库表之间的关系在内存中的镜像。一般一个数据库对应一个
SessionFactory。该对象是线程安全的,它是Session的工厂。使用它可以获得Session对象,并且它可以给事务之间可以重用的数据提供
二级缓存。
session(org.hibernate.Session):该对象表示应用程序和JavaBean对象交互操作的一个单线程对象。它是Transaction的工厂,使用它可以
获得Transaction,从而去进行事务操作。
Persistent Objects(持久化对象及其集合):该对象是与一个session对象相关联的JavaBean对象。当该session被关闭时,它们就会脱离持久
化状态,从而可以被应用程序的任何层使用。
Transient Objects(瞬态的对象及其集合):该集合代表实例化后但还没有和任何session相关联的JavaBean对象。
事务Transaction(org.hibernate.Transaction):该对象代表对数据库最小单位的操作。它通过抽象将应用程序和最底层具体的JDBC、JTA事务隔离
开。某种情况下,一个session可以包括多个Transaction对象。使用该对象一般进行事务的开启和关闭操作。
ConnectionProvider(org.hibernate.connection.ConnectionProvider):该对象是生成JDBC连接的工厂(同时也起到连接池的作用)。它通过抽象将
应用和底层的Datasource或DriverManager隔离开。
TransactionFactory(org.hibernate.TransactionFactory):该对象用来生成Transaction对象实例的工厂。
掌握Hibernate实体对象的生命周期
瞬态(Transient)
由new操作符创建,且尚未与Hibernate Session关联的对象被认定为瞬时(Transient)的。瞬时(Transient)对象和数据库的记录没有任何联系,因而
也不会被赋予持久化标识(identifier)。在应用程序中,如果没有保持对瞬时(Transient)对象的引用,它会被垃圾回收器(garbage collector)销毁。
持久态(Persistent)
一旦一个处于瞬时状态的对象和session相关联,它就转换为持久态(Persistent)。持久的实例在数据库中有对应的记录,并拥有一个持久化标识
(identifier)。持久(Persistent)的实例可能是刚被保存(save)到数据库的,或者是刚从数据库加载(load)的。在与该session断开连接之前,Hibernate
会监测到处于持久(Persistent)状态的对象的任何改动,并且在当前操作单元(unit of work)执行完毕时将对象中的数据与数据库的相关记录同步。
游离态(Detached)
一旦与持久(Persistent)对象关联的session被关闭后,对象就变为脱管(Detached)的。在脱管期间,该对象可继续被修改。如果脱管对象被重新关联
到某个session上,会再次转变为持久的,这时在托管期间的任何改动都会被保存到数据库中。
实体对象的状态转换
使对象持久化
装载对象
装在对象一般使用如下所示的两个函数。
load(): 如果知道一个对象的标识(identifier),则就可以使用session的load()方法来获取它。load()的另一个参数是指定类的class对象。该方法会创建
指定类的持久化实例,并从数据库加载其数据。
get():使用load()方法装载某个对象,如果在数据库中该记录不存在,则会抛出一个异常。如果程序员不确定要装载的记录是否存在,可以使用get()
方法。
修改脱管对象
Session.update();
Session.merge();
使用saveOrUpdate()方法
学会使用Hibernate API
使用Configuration 类
使用SessionFactory接口
使用Session接口
使用Transaction接口
使用Criteria接口
- 第14章 Hibernate的体系结构及接口
- 第5章 HIbernate的基本用法 5.3Hibernate的体系结构
- Hibernate的体系结构
- Hibernate的体系结构
- Hibernate的体系结构
- Hibernate的体系结构
- Hibernate的体系结构
- 第3章 Swing组件的体系结构
- Hibernate学习之---Hibernate的体系结构
- (第3讲)hibernate的核心类和接口
- Hibernate体系结构
- Hibernate 体系结构
- Hibernate体系结构
- hibernate体系结构
- 第 3 章 体系结构(Architecture)
- 第4章 处理器体系结构
- Oracle dba培训教程 第1章 Oracle的体系结构
- MySQL的认知及体系结构
- sql 将‘1,2,3,4’转成相应的表,字段分隔表值函数,一行变多行,
- 注释简介
- MyBatis <set>标签的使用
- 4.3 现在可用的客体类有哪些呢
- 常见26个jquery使用技巧详解(比如禁止右键点击、隐藏文本框文字等)
- 第14章 Hibernate的体系结构及接口
- Openwrt配置Aria2(Hg255d)
- 动态计算cell高度(1)
- OpenGL ES 2.0 系列一
- grep命令常用的15招
- iOS系统框架层数
- 关于Bean的知识private static final long serialVersionUID = 1L
- HDU 1717 小数化分数2(数学)
- android studio进行第三方开源项目的导入,当作library