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

1.配置

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

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

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

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

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

 

S.N.属性和描述
1hibernate.connection.datasource 
在应用程序服务器环境中您正在使用的应用程序 JNDI 名。
2hibernate.jndi.class 
JNDI 的 InitialContext 类。
3hibernate.jndi.<JNDIpropertyname> 
在 JNDI的 InitialContext 类中通过任何你想要的 Java 命名和目录接口属性。
4hibernate.jndi.url 
为 JNDI 提供 URL。
5hibernate.connection.username 
数据库用户名。
6hibernate.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
 
  
数据库方言属性
DB2org.hibernate.dialect.DB2Dialect
HSQLDBorg.hibernate.dialect.HSQLDialect
HypersonicSQLorg.hibernate.dialect.HSQLDialect
Informixorg.hibernate.dialect.InformixDialect
Ingresorg.hibernate.dialect.IngresDialect
Interbaseorg.hibernate.dialect.InterbaseDialect
Microsoft SQL Server 2000org.hibernate.dialect.SQLServerDialect
Microsoft SQL Server 2005org.hibernate.dialect.SQLServer2005Dialect
Microsoft SQL Server 2008org.hibernate.dialect.SQLServer2008Dialect
MySQLorg.hibernate.dialect.MySQLDialect
Oracle (any version)org.hibernate.dialect.OracleDialect
Oracle 11gorg.hibernate.dialect.Oracle10gDialect
Oracle 10gorg.hibernate.dialect.Oracle10gDialect
Oracle 9iorg.hibernate.dialect.Oracle9iDialect
PostgreSQLorg.hibernate.dialect.PostgreSQLDialect
Progressorg.hibernate.dialect.ProgressDialect
SAP DBorg.hibernate.dialect.SAPDBDialect
Sybaseorg.hibernate.dialect.SybaseDialect
Sybase Anywhereorg.hibernate.dialect.SybaseAnywhereDialec
 

配置详解

其他配置

1.连接池

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

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

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

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

配置如下

3..二级缓存

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

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

3.事务管理,

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

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

 

5. 其他配置

 

转载于:https://www.cnblogs.com/lukelook/p/9675357.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值