2.Hibernate的主配置文件hibernate.cfg.xml

1.配置

Hibernate 需要事先知道在哪里找到映射信息,这些映射信息定义了 Java 类怎样关联到数据库表。Hibernate 也需要一套相关数据库和其它相关参数的配置设置。所有这些信息通常是作为一个标准的 Java 属性文件提供的,名叫 hibernate.properties。又或者是作为 XML 文件提供的,名叫 hibernate.cfg.xml

我们将考虑 hibernate.cfg.xml 这个 XML 格式文件,来决定在我的例子里指定需要的 Hibernate 应用属性。这个 XML 文件中大多数的属性是不需要修改的。这个文件保存在应用程序的类路径的根目录里。

下面是一个重要的属性列表,你可能需要表中的属性来在单独的情况下配置数据库。

S.N. 属性和描述
1 hibernate.dialect 
这个属性使 Hibernate 应用为被选择的数据库生成适当的 SQL。
2 hibernate.connection.driver_class
JDBC 驱动程序类。
3 hibernate.connection.url 
数据库实例的 JDBC URL。
4 hibernate.connection.username
数据库用户名。
5 hibernate.connection.password 
数据库密码。
6 hibernate.connection.pool_size 
限制在 Hibernate 应用数据库连接池中连接的数量。
7 hibernate.connection.autocommit 
允许在 JDBC 连接中使用自动提交模式。

如果您正在使用 JNDI 和数据库应用程序服务器然后您必须配置以下属性:

S.N. 属性和描述
1 hibernate.connection.datasource 
在应用程序服务器环境中您正在使用的应用程序 JNDI 名。
2 hibernate.jndi.class 
JNDI 的 InitialContext 类。
3 hibernate.jndi.<JNDIpropertyname> 
在 JNDI的 InitialContext 类中通过任何你想要的 Java 命名和目录接口属性。
4 hibernate.jndi.url 
为 JNDI 提供 URL。
5 hibernate.connection.username 
数据库用户名。
6 hibernate.connection.password 
数据库密码。

Hibernate 和 MySQL 数据库

MySQL 数据库是目前可用的开源数据库系统中最受欢迎的数据库之一。我们要创建 hibernate.cfg.xml 配置文件并将其放置在应用程序的 CLASSPATH 的根目录里。

参考:详 http://www.cnblogs.com/biehongli/p/6531575.html

1:Hibernate的主配置文件的名字必须是hibernate.cfg.xml(主要配置文件中主要配置:数据库连接信息,其他参数,映射信息):
常用配置查看源码:Hibernate\hibernate-distribution-3.6.0.Final\project\etc\hibernate.properties   1.1:主配置文件主要分为三部分:     注意:通常情况下,一个session-factory节点代表一个数据库;     1.1.1:第一部分:数据库连接部分,注意"hibernate.connection.driver_class"中间的 _(杠);     1.1.2:第二部分:其他相关配置,包含打印sql语句,格式化sql语句,创建数据表或者更新数据表等等     1.1.3:第三部分:加载所有的映射;  
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
<!-- 通常,一个session-factory节点代表一个数据库 -->
<session-factory>
<!-- (1):数据连接配置/(2):加载所有的映射(*.hbm.xml)--> <!-- 第一部分:数据连接配置 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<!-- 数据库方法配置:mysql数据库的方言
hibernate在运行的时候,会根据不同的方言生成符合当前数据库语法的sql
-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 第二部分:其他相关配置 -->
<!-- 2.1:hibernate.show_sql显示hibernate运行时候执行的sql语句 -->
<property name="hibernate.show_sql">true</property>
<!-- 2.2:格式化sql -->
<property name="hibernate.format_sql">true</property>
<!-- 2.3:自动建表 -->
<property name="hibernate.hbm2ddl.auto">create</property>
<!-- <property name="hibernate.hbm2ddl.auto">update</property>
-->
<!--
每次在创建sessionFactory时执行创建表,当调用sessionFactory的close方法的时候,删除表
#hibernate.hbm2ddl.auto create-drop
每次都重新建表,如果已经存在就先删除再创建
#hibernate.hbm2ddl.auto create
如果表不存在就创建,表存在就不创建
#hibernate.hbm2ddl.auto update
生成环境时候执行验证,当映射文件的内容与数据库表结构不一样的时候就报错
#hibernate.hbm2ddl.auto validate
--> <!-- 第三部分:加载所有的映射(*.hbm.xml) -->
<mapping resource="com/bie/po/User.hbm.xml"/> </session-factory>
</hibernate-configuration>
hibernate.dialect

数据库 方言属性
DB2 org.hibernate.dialect.DB2Dialect
HSQLDB org.hibernate.dialect.HSQLDialect
HypersonicSQL org.hibernate.dialect.HSQLDialect
Informix org.hibernate.dialect.InformixDialect
Ingres org.hibernate.dialect.IngresDialect
Interbase org.hibernate.dialect.InterbaseDialect
Microsoft SQL Server 2000 org.hibernate.dialect.SQLServerDialect
Microsoft SQL Server 2005 org.hibernate.dialect.SQLServer2005Dialect
Microsoft SQL Server 2008 org.hibernate.dialect.SQLServer2008Dialect
MySQL org.hibernate.dialect.MySQLDialect
Oracle (any version) org.hibernate.dialect.OracleDialect
Oracle 11g org.hibernate.dialect.Oracle10gDialect
Oracle 10g org.hibernate.dialect.Oracle10gDialect
Oracle 9i org.hibernate.dialect.Oracle9iDialect
PostgreSQL org.hibernate.dialect.PostgreSQLDialect
Progress org.hibernate.dialect.ProgressDialect
SAP DB org.hibernate.dialect.SAPDBDialect
Sybase org.hibernate.dialect.SybaseDialect
Sybase Anywhere org.hibernate.dialect.SybaseAnywhereDialec

配置详解

2.Hibernate的主配置文件hibernate.cfg.xml

其他配置

1.连接池

hihibernate.connection.pool_size:最大连接池数

hibernate实现了一种插件结构,可以集成任何连接池软件,对c3p0连接池提供了内嵌支持配置如下

2.Hibernate的主配置文件hibernate.cfg.xml

2.JNDI是java命名与目录接口(java naming and directory interface)

在hibernate中,除了可以通过JDBC连接数据库在还可以通过jndi配置数据源,建立数据库的连接。

配置如下

2.Hibernate的主配置文件hibernate.cfg.xml

3..二级缓存

hibernate共有两级缓存,第一级缓存是session级的缓存,它是事务范围的缓存,可以由hibernate自动管理。

第二级缓存是由sessionFactory管理的进程级缓存,可以在hibernate.cfg.xml配置文件中进行配置和更改,可以动态加载和卸载。

2.Hibernate的主配置文件hibernate.cfg.xml

3.事务管理,

hibernate实现对JDBC的轻量级的封装,本身并没有提供事务管理的功能,它依赖于JDBC或者JAR的事务管理功能。

hibernate默认使用JDBC的事务管理,可配置指定的transaction的工厂类别

2.Hibernate的主配置文件hibernate.cfg.xml

5. 其他配置

2.Hibernate的主配置文件hibernate.cfg.xml

上一篇:Oracle数据库升级注意事项


下一篇:20个Linux服务器安全强化建议(二)