BaoYaEr
hibernate.cfg.xml配置
Hibernate的描述文件可以是一个properties属性文件,也可以是一个xml文件。下面讲一下Hibernate.cfg.xml的配置。配置格式如下:
1. 配置数据源
在Hibernate.cfg.xml中既可以配置JDBC,也可以配置JNDI。在本小节中讲述数据源如何配置,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-configuration
>
<
session-factory
>
<!--
各属性的配置
-->
<!
—为true表示将Hibernate发送给数据库的sql显示出来 --
>
<
property
name
="show_sql"
>
true
</
property
>
<!--
SQL方言,这边设定的是MySQL
-->
<
property
name
="dialect"
>
net.sf.hibernate.dialect.MySQLDialect
</
property
>
<!--
一次读的数据库记录数
-->
<
property
name
="jdbc.fetch_size"
>
50
</
property
>
<!--
设定对数据库进行批量删除
-->
<
property
name
="jdbc.batch_size"
>
30
</
property
>
<!
—下面为JNDI的配置 --
>
<!--
数据源的名称
-->
<
property
name
="connection.datasource"
>
java:comp/env/jdbc/datasourcename
</
property
>
<!--
Hibernate的连接加载类
-->
<
property
name
="connection.provider_class"
>
net.sf.hibernate.connection.DatasourceConnectionProvider
</
property
>
<
property
name
="dialect"
>
net.sf.hibernate.dialect.SQLServerDialect
</
property
>
<!
—映射文件 --
>
<
mapping
resource
="com/amigo/pojo/User.hbm.xml"
/>
<
mapping
resource
="com/amigo/pojo/Org.hbm.xml"
/>
</
session-factory
>
</
hibernate-configuration
>
2. c3p0连接池
c3p0连接池是Hibernate推荐使用的连接池,若需要使用该连接池时,需要将c3p0的jar包加入到classpath中。c3p0连接池的配置示例如下:
<?
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-configuration
>
<
session-factory
>
<!--
显示实际操作数据库时的SQL
-->
<
property
name
="show_sql"
>
true
</
property
>
<!--
SQL方言,这边设定的是MySQL
-->
<
property
name
="dialect"
>
net.sf.hibernate.dialect.MySQLDialect
</
property
>
<!--
驱动程序,在后续的章节中将讲述mysql、sqlserver和Oracle数据库的配置
-->
<
property
name
="connection.driver_class"
>
……
</
property
>
<!--
JDBC URL
-->
<
property
name
="connection.url"
>
……
</
property
>
<!--
数据库用户名
-->
<
property
name
="connection.username"
>
user
</
property
>
<!--
数据库密码
-->
<
property
name
="connection.password"
>
pass
</
property
>
<
property
name
="c3p0.min_size"
>
5
</
property
>
<
property
name
="c3p0.max_size"
>
20
</
property
>
<
property
name
="c3p0.timeout"
>
1800
</
property
>
<
property
name
="c3p0.max_statements"
>
50
</
property
>
<!--
对象与数据库表格映像文件
-->
<
mapping
resource
="com/amigo/pojo/User.hbm.xml"
/>
<
mapping
resource
="com/amigo/pojo/Org.hbm.xml"
/>
</
session-factory
>
</
hibernate-configuration
>
在上述配置中,Hibernate根据配置文件生成连接,再交给c3p0管理。
3. proxool连接池
proxool跟c3p0以及dbcp不一样,它是自己生成连接的,因此连接信息放在proxool配置文件中。使用它时,需要将proxool-0.8.3.jar加入到classespath中。配置举例如下:
<?
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-configuration
>
<
session-factory
>
<!--
显示实际操作数据库时的SQL
-->
<
property
name
="show_sql"
>
true
</
property
>
<!--
SQL方言,这边设定的是MySQL
-->
<
property
name
="dialect"
>
net.sf.hibernate.dialect.MySQLDialect
</
property
>
<!
—proxool的配置 --
>
<
property
name
="proxool.pool_alias"
>
pool1
</
property
>
<
property
name
="proxool.xml"
>
ProxoolConf.xml
</
property
>
<
property
name
="connection.provider_class"
>
net.sf.hibernate.connection.ProxoolConnectionProvider
</
property
>
<!--
对象与数据库表格映像文件
-->
<
mapping
resource
="com/amigo/pojo/User.hbm.xml"
/>
<
mapping
resource
="com/amigo/pojo/Org.hbm.xml"
/>
</
session-factory
>
</
hibernate-configuration
>
在hibernate.cfg.xml的同目录下编写proxool的配置文件:ProxoolConf.xml,该文件的配置实例如下:
ProxoolConf.xml
<?
xml version="1.0" encoding="utf-8"
?>
<!--
the proxool configuration can be embedded within your own application's.
Anything outside the "proxool" tag is ignored.
-->
<
something-else-entirely
>
<
proxool
>
<
alias
>
pool1
</
alias
>
<!--
proxool只能管理由自己产生的连接
-->
<!--
驱动的url
-->
<!--
jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=GBK
-->
<
driver-url
>
…
</
driver-url
>
<!--
驱动类,eg. com.mysql.jdbc.Driver
-->
<
driver-class
>
…
</
driver-class
>
<
driver-properties
>
<!--
数据库用户名,eg. value为root
-->
<
property
name
="user"
value
="…"
/>
<!--
数据库密码,eg. value为root
-->
<
property
name
="password"
value
="…."
/>
</
driver-properties
>
<!--
proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁
-->
<
house-keeping-sleep-time
>
90000
</
house-keeping-sleep-time
>
<!--
指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受
-->
<
maximum-new-connections
>
20
</
maximum-new-connections
>
<!--
最少保持的空闲连接数
-->
<
prototype-count
>
5
</
prototype-count
>
<!--
允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定
-->
<
maximum-connection-count
>
100
</
maximum-connection-count
>
<!--
最小连接数
-->
<
minimum-connection-count
>
10
</
minimum-connection-count
>
</
proxool
>
</
something-else-entirely
>
4. dbcp连接池
在hibernate3.0中,已经不再支持dbcp了,hibernate的作者在hibernate.org中,明确指出在实践中发现dbcp有 BUG,在某些种情会产生很多空连接不能释放,所以抛弃了对dbcp的支持。若需要使用dbcp,开发人员还需要将commons-pool-1.2.jar 和commons-dbcp-1.2.1.jar两个jar包加入到classpath中。dbcp与c3p0一样,都是由hibernate建立连接的。
hibernate.cfg.xml
<?
xml version="1.0" encoding="UTF-8"
?>
<!
DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
>
<
hibernate-configuration
>
<
session-factory
>
<!--
显示实际操作数据库时的SQL
-->
<
property
name
="show_sql"
>
true
</
property
>
<!--
SQL方言,这边设定的是MySQL
-->
<
property
name
="dialect"
>
net.sf.hibernate.dialect.MySQLDialect
</
property
>
<!--
驱动程序,在后续的章节中将讲述mysql、sqlserver和Oracle数据库的配置
-->
<
property
name
="connection.driver_class"
>
……
</
property
>
<!--
JDBC URL
-->
<
property
name
="connection.url"
>
……
</
property
>
<!--
数据库用户名,eg. root
-->
<
property
name
="connection.username"
>
…
</
property
>
<!--
数据库密码, eg. root
-->
<
property
name
="connection.password"
>
…
</
property
>
<
property
name
="dbcp.maxActive"
>
100
</
property
>
<
property
name
="dbcp.whenExhaustedAction"
>
1
</
property
>
<
property
name
="dbcp.maxWait"
>
60000
</
property
>
<
property
name
="dbcp.maxIdle"
>
10
</
property
>
<
property
name
="dbcp.ps.maxActive"
>
100
</
property
>
<
property
name
="dbcp.ps.whenExhaustedAction"
>
1
</
property
>
<
property
name
="dbcp.ps.maxWait"
>
60000
</
property
>
<
property
name
="dbcp.ps.maxIdle"
>
10
</
property
>
<!--
对象与数据库表格映像文件
-->
<
mapping
resource
="com/amigo/pojo/User.hbm.xml"
/>
<
mapping
resource
="com/amigo/pojo/Org.hbm.xml"
/>
</
session-factory
>
</
hibernate-configuration
>
5. MySql连接配置
在hibernate中,可以配置很多种数据库,例如MySql、Sql Server和Oracle,MySql的配置举例如下:
<?
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-configuration
>
<
session-factory
>
<!--
各属性的配置
-->
<!
—为true表示将Hibernate发送给数据库的sql显示出来 --
>
<
property
name
="show_sql"
>
true
</
property
>
<!--
SQL方言,这边设定的是MySQL
-->
<
property
name
="dialect"
>
net.sf.hibernate.dialect.MySQLDialect
</
property
>
<!--
一次读的数据库记录数
-->
<
property
name
="jdbc.fetch_size"
>
50
</
property
>
<!--
设定对数据库进行批量删除
-->
<
property
name
="jdbc.batch_size"
>
30
</
property
>
<!--
驱动程序
-->
<
property
name
="connection.driver_class"
>
com.mysql.jdbc.Driver
</
property
>
<!--
JDBC URL
-->
<
property
name
="connection.url"
>
jdbc:mysql://localhost/dbname?characterEncoding=gb2312
</
property
>
<!--
数据库用户名
-->
<
property
name
="connection.username"
>
root
</
property
>
<!--
数据库密码
-->
<
property
name
="connection.password"
>
root
</
property
>
<!
—映射文件 --
>
<
mapping
resource
="com/amigo/pojo/User.hbm.xml"
/>
<
mapping
resource
="com/amigo/pojo/Org.hbm.xml"
/>
</
session-factory
>
</
hibernate-configuration
>
上面使用的驱动类是com.mysql.jdbc.Driver。需要将MySql的连接器jar包(eg. mysql-connector-java-5.0.4-bin.jar)加入到classpath中。
6. Sql Server连接配置
本小节讲述一下Sql Server数据库的hibernate连接设置,在此只给出连接部分的内容,其余部分与2.2.1.5一样,在此不再赘述。内容如下:
<!--
驱动程序
-->
<
property
name
="connection.driver_class"
>
net.sourceforge.jtds.jdbc.Driver
</
property
>
<!--
JDBC URL
-->
<
property
name
="connection.url"
>
jdbc:jtds:sqlserver://localhost:1433;DatabaseName=dbname
</
property
>
<!--
数据库用户名
-->
<
property
name
="connection.username"
>
sa
</
property
>
<!--
数据库密码
-->
<
property
name
="connection.password"
></
property
>
上例的驱动类使用的是jtds的驱动类,因此读者需要将jtds的jar包(eg. jtds-1.2.jar)加入到classpath中。
7. Oracle连接配置
本小节讲述一下Sql Server数据库的hibernate连接设置,在此只给出连接部分的内容,其余部分与2.2.1.5一样,在此不再赘述。内容如下:
<!--
驱动程序
-->
<
property
name
="connection.driver_class"
>
oracle.jdbc.driver.OracleDriver
</
property
>
<!--
JDBC URL
-->
<
property
name
="connection.url"
>
jdbc:oracle:thin:@localhost:1521:dbname
</
property
>
<!--
数据库用户名
-->
<
property
name
="connection.username"
>
test
</
property
>
<!--
数据库密码
-->
<
property
name
="connection.password"
>
test
</
property
>
上例使用的驱动类为:oracle.jdbc.driver.OracleDriver,开发人员需要将相关的jar包(ojdbc14.jar)加入到classpath中。
发表于 2008-01-04 09:12
大田斗
阅读(34023)
评论(1)
编辑
收藏
所属分类:
Hibernate
评论
#
re: hibernate.cfg.xml配置
好全啊 .. 棒棒哒 ~ !
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
spring+hibernate的clob大字段处理(转载于javaeye论坛)
hibernate 乐观锁与悲观锁使用
通用Dao 设计 2
Hibernate 3 Formulas(翻译)
hibernate集合映射inverse和cascade详解
采用p6spy完整显示hibernate的SQL语句 [zt]
spring +hibernate 启动优化【转】
Could not initialize proxy - the owning Session was closed ---Hibernate与延迟加载:
hibernate.cfg.xml配置
hibernate部分问题总结
<
2015年11月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
导航
BlogJava
首页
发新随笔
发新文章
联系
聚合
管理
统计
随笔: 32
文章: 427
评论: 144
引用: 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(5)
给我留言
查看公开留言
查看私人留言
随笔档案
2008年12月 (1)
2008年4月 (2)
2008年2月 (1)
2008年1月 (1)
2007年12月 (3)
2007年11月 (1)
2007年10月 (3)
2007年7月 (2)
2007年6月 (1)
2007年4月 (2)
2007年3月 (3)
2007年2月 (5)
2007年1月 (3)
2006年12月 (4)
文章分类
axis(6)
(rss)
eclipse(7)
(rss)
Hibernate(30)
(rss)
html/js/css(107)
(rss)
java(106)
(rss)
linux(7)
(rss)
Lucene(7)
(rss)
spring(36)
(rss)
Spring CLOUd(1)
(rss)
Strtus(30)
(rss)
其它(48)
(rss)
开源opensource(48)
(rss)
数据库DateBase(30)
(rss)
设计模式(12)
(rss)
文章档案
2018年8月 (1)
2012年5月 (1)
2012年4月 (2)
2011年7月 (6)
2010年3月 (1)
2010年2月 (1)
2010年1月 (3)
2009年12月 (1)
2009年10月 (1)
2009年8月 (3)
2009年3月 (1)
2009年2月 (1)
2008年12月 (3)
2008年11月 (10)
2008年10月 (3)
2008年9月 (2)
2008年8月 (2)
2008年7月 (4)
2008年6月 (13)
2008年5月 (15)
2008年4月 (9)
2008年3月 (10)
2008年1月 (18)
2007年12月 (33)
2007年11月 (6)
2007年10月 (18)
2007年9月 (10)
2007年8月 (18)
2007年7月 (15)
2007年6月 (25)
2007年5月 (19)
2007年4月 (26)
2007年3月 (38)
2007年2月 (33)
2007年1月 (27)
2006年12月 (27)
2006年11月 (12)
java
Ajax特效网站
cndiy nio
GRO
Hani Suleiman's blog
Java之路
java论坛
J道
mule
mule 入门
oksonic(动画教程)
一路由你
中国eclipse
八进制
在线源码
多线程实战
天火
小米的blogjava
幻境伯克----jface/swt
很全的博克-强
每日一得
满江红
邢红瑞
飞翔
鸟诗选(js)
鸟食轩 (dhtml)
工具
apache中文手册
extjs学习
iconFindre
java 安全
javaresearch
java技巧网
js之王
matrix(study)
prototype api
spring中文
北京IT企业速查
在线流程图工具
雅虎翻译
朋友
Happyshow
hibernate异常
skywalker
sunshow
xf
亚光
同云博客
小弟鹏
张玉磊
昕
李阳
黄鸣
搜索
积分与排名
积分 - 1097829
排名 - 28
最新评论
1. re: hibernate.cfg.xml配置
好全啊 .. 棒棒哒 ~ !
--junqinag.yang
2. re: Quartz任务调度快速入门
我现在来看还是觉得不错
--小任
3. re: js中this的总结
评论内容较长,点击标题查看
--pam
4. re: Quartz任务调度快速入门
楼主辛苦
--yd
5. re: Quartz任务调度快速入门
顶了,内容写的很好
--sen
阅读排行榜
1. 网页不缓存(3535)
2. Form嵌套引起的问题 (2829)
3. 解决IE下CSS背景图片闪烁的Bug(2431)
4. Spring AOP的动态载入原理(2393)
5. 如何制作漂亮的Excel表格(2021)
评论排行榜
1. 北京户口--吃官司(5)
2. 开始→运行→输入的命令集锦(3)
3. 让网页上的所有图片动起来(2)
4. Dom4j 编码问题彻底解决 (1)
5. 心情不爽(1)