SSH框架---Hibernate的核心配置文件hibernate.cfg.xml(三)

Hibernate的核心配置文件必须放在src目录或与src同级的config目录下。由hibernate来加载。

一、作用

① 告诉hibernate要连接的数据库信息;
② 加载映射关系文件(类名.hbm.xml)的地址。注意是地址,即com/ly/hibernate/domain/类名.hbm.xml

二、那这个文件该如何写呢?--核心配置文件的配置

答案在:hibernate-release-5.0.7.Final\project\etc\hibernate.properties中早已经规定好如何写了。

2.0 添加dtd约束

hibernate-core-5.0.7.Final.jar  》    org.hibernte  》  hibernate-configuration-3.0.dtd文件
http://www.hibernate.org/...  需要联网才能使用此约束。或者将dtd约束文件添加到本地,参考:由xml约束引起的报错,即如何把约束(.xsd)文件导入MyEclipse中

2.1 数据库连接的基本参数

必须加载:①数据库的驱动
                  ②数据库的地址
                  ③数据库的用户名
                  ④数据库的密码
                  ⑤数据库的方言

<!-- 数据的驱动 -->
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<!-- 数据库的地址 -->
<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<!-- 数据库的用户名  -->
<property name="hibernate.connection.username">ly1</property>
<!-- 数据库的密码 -->
<property name="hibernate.connection.password">ly1</property>
<!-- 数据库的方言:因为hibernate可以自动生成SQL,方言的设置是让hibernate知道生成哪个数据库的sql语句,以oracle为例 -->
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>

源码的配置文件 方言部分截图,可参考:

2.2  其他属性

可选择加载:①c3p0的配置
                      ②控制显示sql语句(默认hibernate自动生成的SQL我们是不显示的,默认多长的SQL都一行显示)
                      ③让sql语句格式化(让上面显示的过长的SQL自动分行)
                      ④让Hibernate根据映射关系自动生成数据库的表,默认不主动创建表 

<!-- 告诉hibernate要用c3p0 -->
<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<!-- hibernate自动生成的sql语句在控制台显示出来,SQL默认一行,不管多长 -->
<property name="hibernate.show_sql">true</property>
<!-- 显示的sql语句更加的格式化 -->
<property name="hibernate.format_sql">true</property>
<!-- 让hibernate根据映射关系自动生成数据库的表 默认hibernate不会主动创建表 
			 create:没有表创建表;有表删除表再创建表     //做测试(当数据特别大时,每次都只显示最新数据,测试意义好像也不大的样子),实际生产没有意义
			 create-drop:没有表创建表;有表删除掉创建表 用完就全删  //没实际用途,实际生产没有意义
			 update: 没有表,创建表 ;有表,使用表  //企业开发使用  
			 validate:默认 不创建  -->
<property name="hibernate.hbm2ddl.auto">update</property>

2.3  映射文件加载

<!-- 加载映射关系文件(Customer.hbm.xml)的地址 -->
<mapping resource="com/ly/hibernate/domain/Customer.hbm.xml"/>

全部核心配置文件如下:

<?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-core-5.0.7.Final.jar  》    org.hibernte  》  hibernate-configuration-3.0.dtd文件
    http://www.hibernate.org/...  需要联网才能使用此约束 -->  

<!-- 告诉hibernate要连接的数据库信息 -->
<hibernate-configuration>
    <!-- 是生产session的工厂   hibernate里的session是connection的意思,和servlet里的session一点也不一样 -->
	<session-factory>
		<!-- 数据的驱动 -->
 		<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
 		<!-- 数据库的地址 -->
 		<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
 		<!-- 数据库的用户名  -->
 		<property name="hibernate.connection.username">ly1</property>
 		<!-- 数据库的密码 -->
 		<property name="hibernate.connection.password">ly1</property>
 		<!-- 数据库的方言
 			 分页: 不同数据库的有些sql不一致
 			   mysql:     select * from 表  limit ?,?
 			   sqlserver: select * from 表  top ?,?
 			   oracle:    嵌套
 			  因为hibernate可以自动生成SQL,方言的设置是让hibernate知道生成哪个数据库的 sql语句 ,以oracle为例:
 		 -->
 		<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
 		
 		<!-- 告诉hibernate要用c3p0 -->
 		<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
 		<!-- hibernate自动生成的sql语句在控制台显示出来,SQL默认一行,不管多长 -->
 		<property name="hibernate.show_sql">true</property>
 		<!-- 显示的sql语句更加的格式化 -->
 		<property name="hibernate.format_sql">true</property>
 		<!-- 让hibernate根据映射关系自动生成数据库的表 默认hibernate不会主动创建表 
		 			 create:没有表创建表;有表删除表再创建表     //做测试(当数据特别大时,每次都只显示最新数据,测试意义好像也不大的样子),实际生产没有意义
		 			 create-drop:没有表创建表;有表删除掉创建表 用完就全删  //没实际用途,实际生产没有意义
		 			 update: 没有表,创建表 ;有表,使用表  //企业开发使用  
		 			 validate:默认 不创建
 		-->
 		<property name="hibernate.hbm2ddl.auto">update</property>
 		
 		<!-- 加载映射关系文件(Customer.hbm.xml)的地址 -->
		<mapping resource="com/ly/hibernate/domain/Customer.hbm.xml"/>
		
	</session-factory>
</hibernate-configuration>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值