Hibernate.cfg.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!--Hibernate配置文件的根元素-->
<hibernate-configuration>
<!--表明以下的配置是针对session-factory配置的,SessionFactory是Hibernate中的一个类,
这个类主要负责保存Hibernate的配置信息,以及对Session的操作-->
<session-factory>
<!-- 数据库连接信息 -->
<!-- MySQL:
数据库驱动程序
<property name="hibernate.connection.driver_class">org.gjm.mm.mysql.Driver</property>
数据库用户名
<property name="hibernate.connection.username">hi</property>
数据库密码
<property name="hibernate.connection.password">123456</property>
数据库连接地址
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibase</property>
-->
<!-- oracle -->
<property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="hibernate.connection.username">scott</property>
<property name="hibernate.connection.password">tiger</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<!-- Hibernate 配置信息 -->
<!-- dialect 方言,用于配置生成针对哪个数据库的SQL语句 -->
<property name="hibernarte.dialect">
<!-- 方言类,Hibernate提供的,用于封装某种特定数据库的方言 -->
<!-- MySQL: org.hibernate.dialect.MySQL5Dialect -->
org.hibernate.dialect.OracleDialect
</property>
<!--(可选择)jdbc.use_scrollable_resultset是否允许Hibernate用JDBC的可滚动的结果集。
对分页的结果集。对分页时的设置非常有帮助-->
<property name="jdbc.use_scrollable_resultset">false </property>
<!--(可选择)connection.useUnicode连接数据库时是否使用Unicode编码-->
<property name="Connection.useUnicode">true </property>
<!--(可选择)connection.characterEncoding连接数据库时数据的传输字符集编码方式,-->
<property name="connection.characterEncoding">utf-8 </property>
<!--数据库连接池信息(可选择)-->
<property name="hibernate.connection.pool.size">20 </property>
<!--(可选择)指定连接池的最大连接个数,使用连接池需要加载所有的链接池的JAR文件,
JAR文件在Hibernate文件夹下的“lib\optional\c3p0”中 -->
<property name="hibernate.c3p0.max_size">30</property>
<property name="hibernate.c3p0.min_size">10</property>
<!-- 指定连接池里连接超时时长,即最大时间 -->
<property name="hibernate.c3p0.timeout">5000</property>
<!--数据库一次操作时的记录数:(可选择)-->
<!--jdbc.fetch_size是指Hibernate每次从数据库中取出并放到JDBC的Statement中的记录条数。
Fetch Size设的越大,读数据库的次数越少,速度越快,Fetch Size越小,读数据库的次数越多,速度越慢-->
<property name="jdbc.fetch_size">50 </property>
<!--jdbc.batch_size是指Hibernate批量插入,删除和更新时每次操作的记录数。
Batch Size越大,批量操作的向数据库发送Sql的次数越少,速度就越快,同样耗用内存就越大-->
<property name="jdbc.batch_size">23 </property>
<!-- hbm2ddl.auto: 生成表结构的策略配置
update(最常用的取值): 如果当前数据库中不存在表结构,那么自动创建表结构.
如果存在表结构,并且表结构与实体一致,那么不做修改
如果存在表结构,并且表结构与实体不一致,那么会修改表结构.会保留原有列.
create(很少):无论是否存在表结构.每次启动Hibernate都会重新创建表结构.(数据会丢失)
create-drop(极少): 无论是否存在表结构.每次启动Hibernate都会重新创建表结构.每次Hibernate运行结束时,删除表结构.
validate(很少):不会自动创建表结构.也不会自动维护表结构.Hibernate只校验表结构. 如果表结构不一致将会抛出异常.
-->
<property name="hbm2ddl.auto">update</property>
<!-- Hibernate生成的SQL是否输出到控制台 -->
<property name="show_sql">true</property>
<!-- 将SQL输出时是否格式化 -->
<property name="format_sql">true</property>
<!-- 开启二级缓存:(可选择) -->
<property name="hibernate.cache.use_second_level_cache">true</property>
<!-- 指定缓存产品所需的类 (可选择)-->
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<!-- 启用查询缓存(可选择) -->
<property name="hibernate.cache.use_query_cache">true</property>
<!-- 声明映射关系文件,可映射多个映射文件-->
<mapping resource="com/lkl/model/Emp.hbm.xml" />
</session-factory>
</hibernate-configuration>