hibernate.cfg.xml(Hibernate核心配置文件)
Hibernate 的常用配置文件主要分为 2 种:核心配置文件(hibernate.cfg.xml)和映射文件(Xxx.hbm.xml),它们主要用于配置数据库连接、事务管理、Hibernate 本身的配置信息以及 Hibernate 映射文件信息。
本节我们只讲解 Hibernate 核心配置文件,也即 hibernate.cfg.xml,后续将在《Hibernate 映射文件》一节中继续讲解 Hibernate 映射文件。
hibernate.cfg.xml 被称为 Hibernate 的核心配置文件,它包含了数据库连接的相关信息以及映射文件的基本信息。通常情况下,该配置文件默认放在项目的 src 目录下,当项目发布后,该文件会在项目的 WEB-INF/classes 路径下。
hibernate.cfg.xml 中通常可以进行以下配置,这些配置中有些是必需配置,有些则是可选配置。
我们知道,在 XML 配置文件中 dtd 信息十分重要,它规定了 XML 中的语法和格式。Hibernate 核心配置的 dtd 信息,可以在 Hibernate 核心 Jar 包(hibernate-core-xxx.jar)下的 org.hibernate.hibernate-configuration-3.0.dtd 中找到,初学者只需要复制并使用该 dtd 信息即可。
Hibernate 核心配置文件的根元素是 <hibernate-configuration>,该元素中包含一个 <session-factory> 子元素。
Hibernate 能够访问多种关系型数据库,例如 MySQL、Oracle 等等,尽管多数关系型数据库都支持标准的 SQL 语言,但它们往往都还存在一些它们各自的独特的 SQL 方言,就像在不同地区的人既会说普通话,还能说他们各自的方言一样。hibernate.dialect 用于指定被访问的数据库的 SQL 方言,当 Hibernate 自动生成 SQL 语句或者使用 native 策略成主键时,都会参看该属性设置的方言。
通常情况下,Hibernate 项目中存在多少映射文件,在核心配置文件中就配置多少个 <mapping> 元素。
本节我们只讲解 Hibernate 核心配置文件,也即 hibernate.cfg.xml,后续将在《Hibernate 映射文件》一节中继续讲解 Hibernate 映射文件。
hibernate.cfg.xml 被称为 Hibernate 的核心配置文件,它包含了数据库连接的相关信息以及映射文件的基本信息。通常情况下,该配置文件默认放在项目的 src 目录下,当项目发布后,该文件会在项目的 WEB-INF/classes 路径下。
hibernate.cfg.xml 中通常可以进行以下配置,这些配置中有些是必需配置,有些则是可选配置。
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!--使用 Hibernate 自带的连接池配置--> <property name="connection.url">jdbc:mysql://localhost:3306/bianchengbang_jdbc</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!--hibernate 方言--> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> <!--打印sql语句--> <property name="hibernate.show_sql">true</property> <!--格式化sql--> <property name="hibernate.format_sql">true</property> <!-- 加载映射文件 --> <mapping resource="net/biancheng/www/mapping/User.hbm.xml"/> </session-factory> </hibernate-configuration>
我们知道,在 XML 配置文件中 dtd 信息十分重要,它规定了 XML 中的语法和格式。Hibernate 核心配置的 dtd 信息,可以在 Hibernate 核心 Jar 包(hibernate-core-xxx.jar)下的 org.hibernate.hibernate-configuration-3.0.dtd 中找到,初学者只需要复制并使用该 dtd 信息即可。
Hibernate 核心配置文件的根元素是 <hibernate-configuration>,该元素中包含一个 <session-factory> 子元素。
<property> 元素
在 <session-factory> 元素中,包含了多个 <property> 子元素,这些元素用于配置 Hibernate 连接数据库的各种信息,例如,数据库的方言、驱动、URL、用户名、密码等。这些 property 属性中,有些是 Hibernate 的必需配置,有些则是可选配置,如下表。property 属性名 | 描述 | 是否为必需属性 |
---|---|---|
connection.url | 指定连接数据库 URL | 是 |
hibernate.connection.username | 指定数据库用户名 | 是 |
hibernate.connection.password | 指定数据库密码 | 是 |
connection.driver_class | 指定数据库驱动程序 | 是 |
hibernate.dialect | 指定数据库使用的 SQL 方言,用于确定 Hibernate 自动生成的 SQL 语句的类型 | 是 |
hibernate.show_sql | 用于设置是否在控制台输出 SQL 语句 | 否 |
hibernate.format_sql | 用于设置是否格式化控制台输出的 SQL 语句 | 否 |
hibernate.hbm2ddl.auto |
当创建 SessionFactory 时,是否根据映射文件自动验证表结构或自动创建、自动更新数据库表结构。 该参数的取值为 validate 、update、create 和 create-drop |
否 |
hibernate.connection.autocommit | 事务是否自动提交 | 否 |
Hibernate 能够访问多种关系型数据库,例如 MySQL、Oracle 等等,尽管多数关系型数据库都支持标准的 SQL 语言,但它们往往都还存在一些它们各自的独特的 SQL 方言,就像在不同地区的人既会说普通话,还能说他们各自的方言一样。hibernate.dialect 用于指定被访问的数据库的 SQL 方言,当 Hibernate 自动生成 SQL 语句或者使用 native 策略成主键时,都会参看该属性设置的方言。
<mapping> 元素
在 <session-factory> 元素中,除了 property 元素外,还可以包含一个或多个 <mapping> 元素,它们用来指定 Hibernate 映射文件的信息,加载映射文件。<mapping resource="net/biancheng/www/mapping/User.hbm.xml"/>
通常情况下,Hibernate 项目中存在多少映射文件,在核心配置文件中就配置多少个 <mapping> 元素。
但需要注意的是,<mapping> 元素指定的是映射文件的路径,而不是包结构。