Hibernate框架核心配置文件

时间:2021-10-18 22:16:29

Hibernate核心配置文件hibernate.cfg.xml主要由以下四部分组成

(1)数据库连接信息,包括驱动程序类名、连接URL、用户名和密码。

(2)Hibernate相关特性,包括dialect(方言)、show_sql(输出SQL语句到控制台)、format_sql(格式化SQL语句)

(3)连接池相关信息。

(4)实体类映射文件,实体类与数据库表之间的逻辑映射


ORM有自动的SQL生成机制,大部分时候,数据库操作都是通过标准SQL来完成,但是有时需要使用数据库特有的语句,如分页语句、函数等。方言正是用于这些时候,指导Hibernate如何生成SQL。Hibernate采用方言属性,可以屏蔽各数据库之间的差异,使得应用程序更加方便的从一种数据库前移到另一种数据库。


创建hibernate.cfg.xml,保存到工程的src目录下,编写数据库的连接配置信息,及具体代码如下

<?xml version='1.0' encoding='utf-8'?>
<!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>
<!-- 配置数据库方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 配置数据库驱动 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 配置数据库url -->
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
<!-- 配置用户名 -->
<property name="hibernate.connection.username">root</property>
<!-- 配置密码 -->
<property name="hibernate.connection.password">1921</property>
<!-- 是否输出Hibernate生成的SQL语句,开启为true -->
<property name="show_sql">true</property>
<!-- ddl语句自动建表 -->
<property name="hbm2ddl.auto">update</property>
<!-- 是否对输出SQL进行格式化 -->
<property name="format_sql">true</property>

<!-- 连接池的配置 -->
<property name="hibernate.connection.provider_class">
org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider
</property>

<!-- C3P0随机准备好的最少的JDBC连接数量 -->
<property name="hibernate.c3p0.min_size">5</property>

<!-- 连接池的最大JDBC连接数量 -->
<property name="hibernate.c3p0.max_size">20</property>

<!-- 配置超时周期,在他之后,休闲连接将从连接池中移除 -->
<property name="hibernate.c3p0.timeout">300</property>

<!-- 最多高速缓存100个预编译语句,该属性是使Hibernate获得良好性能的要素 -->
<property name="hibernate.c3p0.max_statements">100</property>

<!-- 连接池被自动验证前,以秒为单位的闲置时间 -->
<property name="hibernate.c3p0.idle_test_period">3000</property>

<!-- 注册ORM实体类映射文件 -->
<mapping resource="com/caokaiyuan/domain/User.hbm.xml"/>

</session-factory>
</hibernate-configuration>