1、Hibernate的体系结构 (1)SessionFactory:他是单个数据库映射关系经过编译后内存镜像,也是线程安全的;他是生成Session工厂,本身需要依赖于ConnetionProvi
1、Hibernate的体系结构
(1)SessionFactory:他是单个数据库映射关系经过编译后内存镜像,也是线程安全的;他是生成Session工厂,本身需要依赖于ConnetionProvider.
(2)Session:它是应用程序与持久存储层之间交互操作的一个单线程对象。它也是持久化操作的一个关键对象
Hibernate软件包:
hibernate3.jar: 包含Hibernate3的基础框架和核心API类库,是必须使用的jar包。
cglib-2.1.2.jar: CGLIB库,Hibernate用它来实现PO字节码的动态生成,它是非常核心的库,是必须使用的jar包。
dom4j-1.6.1.jar: dom4j是一个Java的XML API,类似于jdom,用来读写XML文件。 commons-collections.jar: Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大。必须使用的jar包。
commons-logging.jar: Apache Commons包中的一个,包含了日至功能,必须使用的jar包。
Hibernate可选包(1):
ant-1.6.5.jar: Ant编译工具的jar包,用来编译Hibernate源代码的。它是可选包。
c3po-0.9.0.jar: C3PO是一个数据库连接池,Hibernate可以配置为使用C3PO的连接池,如果准备用这个连接池,就需要这个jar包。
connector.jar: JCA(Java Cryptography Architecture,Java加密架构,java平台中用于访问和开发加密功能的框架)规范,如果在App Server上把Hibernate配置为Connector,就需要这个jar。一般App Server都会带上这个包。
jaas.jar: JAAS是用来进行权限验证的,已经包含在JDK1.4里面了。所以它的实际上是多余的包。
Hibernate可选包(2):
jdbc2_0-stdext.jar: JDBC2.0的扩展包,一般来说数据库连接池会用上它,不过App Server都会带上它,所以也是多余的。
jta.jar: JTA(java事务处理的机制)规范,当Hibernate使用JTA的时候需要,不过App Server都会带上它,所以也是多余的。
junit-3.8.1.jar: Junit包,当运行Hibernate自带的测试代码的时候需要,否则就不用。
xerces-2.6.2.jar和xml-apis.jar:Xerces是XML解析器,xml-apis实际上是JAXP。也是多余的包。
Hibernate的运行过程如下: 1、应用程序先调用Configuration类,该类读取Hibernate配置文件及映射文件中的信息, 2、并用这些信息生成一个SessionFactory对象, 3、然后从SessionFactory对象生成一个Session对象, 4、并用Session对象生成Transaction对象; A、可通过Session对象的get(),load(),save(),update(),delete()和saveOrUpdate()等方法对PO进行加载、保存、更新、删除、等操作; B、在查询的情况下,可通过Session对象生成一个Query对象,然后利用Query对象执行查询操作;如果没有异常,Transaction对象将提交这些操作到数据库中。