文档介绍:第11章 Hibernate 基础
本章将介绍Hibernate的基础知识,首先介绍的是Hibernate的体系结构和一些基本的概念。然后介绍Hibernate的配置情况,重点是介绍Hibernate的几个核心类和它们的使用方法。通过本章的学习可以基本了解Hibernate的结构,编写简单的Hibernate程序。
基本概念
本节将从Hibernate的基本概念讲起,介绍Hibernate的设计思想。即使在以后的程序中没有使用Hibernate,但它的设计思路还是很值得借鉴的
体系结构(Architecture)
一个非常简要的Hibernate体系结构的概要图,。从这个图可以看出,Hibernate使用数据库和配置信息来为应用程序提供持久化服务(以及持久的对象)。
持久化类(Persistent Classes)
在应用程序中,用来实现业务问题实体的(如,在电子商务应用程序中的Customer和Order)类就是持久化类。不能认为所有的持久化类的实例都是持久的状态——一个实例的状态也可能是临时的或脱管的。
如果这些持久化类遵循一些简单的规则,Hibernate能够工作得更好,这些规则也被称作简单传统Java对象(POJO)编程模型。但是这些规则并不是必需的。实际上,Hibernate3对于的持久化类几乎不做任何设想。可以用其他的方法来表达领域模型:比如,使用Map实例的树型结构。
实例的状态
一个持久化类的实例可能处于三种不同状态中的某一种。这三种状态的定义则与所谓的持久化上下文(persistence context)有关。Hibernate的Session对象就是这个所谓的持久化上下文:
配置Hibernate
由于Hibernate是为了能在各种不同环境下工作而设计的,,(位于etc/)(classpath)下并做一些自定义的修改。
数据库连接配置
Hibernate支持两种数据库连接方式:JDBC和JNDI方式。
全局属性配置
Hibernate提供很多方便的全局配置,可以通过调整这些参数,控制Hibernate的行为。
连接池配置
Hibernate自带的连接池算法相当不成熟。它只是为了让使用者快些上手,并不适合用于产品系统或性能测试中。出于最佳性能和稳定性考虑应该使用第三方的连接池。。这将关闭Hibernate自带的连接池。
在实际应用中更多的看到使用Hibernate提供了一个缺省的第三方连接池C3P0,它位于lib目录下。.*相关的属性,Hibernate将使用C3P0ConnectionProvider来缓存JDBC连接。
使用其他配置方式
Hibernate同时支持xml格式的配置文件,以及传统的properties文件配置方式,不过这里建议采用xml型配置文件。xml配置文件提供了更易读的结构和更强的配置能力,可以直接对映射文件加以配置,而在properties文件中则无法配置,必须通过代码中的Hard Coding加载相应的映射文件。
Configuration cfg = new Configuration();
.addResource("");
.addResource("");