创建Hibernate配置文件
Hibernate配置文件主要用于配置数据库连接和Hibernate运行时所需的各种属性,这个配置文件应该位于应用程序或Web程序的类文件夹 classes中。Hibernate配置文件支持两种形式,一种是xml格式的配置文件,另一种是Java属性文件格式的配置文件,采用“键=值”的形式。建议采用xml格式的配置文件。xml配置文件可以直接对映射文件进行配置,并由Hibernate自动加载,而properties文件则必须在程序中通过编码加载映射文件。创建xml格式的配置文件Hibernate默认的xml格式的配置文件名称为hibernate.cfg.xml。下面将以一个典型的连接SQL Server 2000的Hibernate配置文件为例,对xml格式的配置文件进行解析。<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><!--SessionFactory配置--> <session-factory>指定数据库使用的SQL方言。尽管多数关系数据库都支持标准的SQL语言,但是笔者建议在此指定自己的SQL方言。<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>指定连接数据库用的驱动,对于不同的关系数据库,其驱动是不同的,需要根据实际情况修改。<property name="connection.driver_class"> com.microsoft.jdbc.sqlserver.SQLServerDriver</property>指定连接数据库的路径,对于不同的关系数据库,其URL路径是不同的,需要根据实际情况修改。<property name="connection.url"> jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=数据库名</property>指定连接数据库的用户名。<property name="connection.username">用户名</property>指定连接数据库的密码;如果密码为空,则在“密码”的位置不写任何字符。<property name="connection.password">密码</property>指定当程序运行时是否在控制台输出SQL语句。当show_sql属性为true时,表示在控制台输出SQL语句,默认为false。建议在调试程序时设为true,发布程序之前再改为false,因为输出SQL语句会影响程序的运行速度。<property name="show_sql">true</property>指定当程序运行时,是否按照标准格式在控制台上输出SQL语句。当format_sql属性为true时,表示按照标准格式在控制台上输出SQL语句,默认为false。建议在调试程序时设为true,发布程序之前再改为false。该属性只有当show_sql属性为true时才有效。<property name="format_sql">true</property>指定当程序运行时,是否在SQL语句中输出便于调试的注释信息。当show_sql属性为true时,表示输出注释信息,默认为false。建议在调试程序时设为true,发布程序之前再改为false。该属性只有当show_sql属性为true时才有效。<property name="use_sql_comments">true</property>指定持久化类映射文件的位置,由包名与映射文件组成,包名与映射文件之间用“/”分隔。 <mapping resource="com/BranchForm.hbm.xml"/> </session-factory></hibernate-configuration>在上面的配置文件hibernate.cfg.xml中,包含了一系列的属性元素,Hibernate将根据这些属性元素连接数据库。创建Java属性文件格式的配置文件Hibernate默认的Java属性文件格式的配置文件名称为hibernate.properties,其基本格式如下:#指定连接数据库使用的SQL方言#hibernate.dialect=org.hibernate.dialect.SQLServerDialect#指定连接数据库的驱动程序#hibernate.connection.driver_class=com.microsoft.jdbc.sqlserver.SQLServerDriver#指定连接数据库的URL#hibernate.connection.url=jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=数据库名#指定连接数据库的用户名#hibernate.connection.username=用户名#指定连接数据库的密码#hibernate.connection.password=密码#指定在执行程序时,是否在控制台上输出SQL语句#hibernate.show_sql=true#指定是否按照标准格式在控制台上输出SQL语句#hibernate.format_sql=true#指定是否在SQL语句中输出便于调试的注释信息#hibernate.use_sql_comments=truehibernate.properties文件中包含了一系列属性的设置值,Hibernate将根据这些属性来连接数据库。本例为连接SQL Server 2000数据库时的文件内容。Hibernate配置属性Hibernate 3.2提供的配置属性如表2.1所示。表2.1 Hibernate 3.2提供的配置属性表 属 性说 明hibernate.dialect连接数据库使用的SQL方言hibernate.show_sql指定是否在控制台上输出SQL语句,值为true或falsehibernate.format_sql指定是否按照标准格式在控制台上输出SQL语句,值为true或falsehibernate.default_schema在生成的SQL中,将给定的schema/tablespace附加于非全限定名的表名上续表属 性 说 明hibernate.default_catalog 在生成的SQL中,将给定的catalog附加于非全限定名的表名上hibernate.session_factory_name SessionFactory创建后,将自动使用这个名字绑定到JNDI中hibernate.max_fetch_depth 为单向关联(一对一、多对一)的外连接抓取(Outer Join Fetch)树设置最大深度,值为0意味着将关闭默认的外连接抓取。建议在0到3之间取值hibernate.default_batch_fetch_size 为Hibernate关联的批量抓取设置默认数量。建议使用4、8或16hibernate.default_entity_mode 为由SessionFactory打开的所有Session指定默认的实体表现模式hibernate.order_updates 强制Hibernate按照被更新数据的主键为SQL更新排序。这么做将减少在高并发系统中事务的死锁。值为true或falsehibernate.generate_statistics 用于指定Hibernate是否收集有助于性能调节的统计数据,值为true或false,默认值为falsehibernate.use_identifer_rollback 用于指定在对象被删除时,生成的标识属性是否被重设为默认值,值为true或false,默认值为falsehibernate.use_sql_comments 用于指定是否在SQL语句中输出便于调试的注释信息,值为true或false,默认值为false