BaoYaEr
hibernate.cfg.xml配置
Hibernate的描述文件可以是一個(gè)properties屬性文件,也可以是一個(gè)xml文件。下面講一下Hibernate.cfg.xml的配置。配置格式如下:
1. 配置數(shù)據(jù)源
在Hibernate.cfg.xml中既可以配置JDBC,也可以配置JNDI。在本小節(jié)中講述數(shù)據(jù)源如何配置,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發(fā)送給數(shù)據(jù)庫(kù)的sql顯示出來(lái) --
>
<
property
name
="show_sql"
>
true
</
property
>
<!--
SQL方言,這邊設(shè)定的是MySQL
-->
<
property
name
="dialect"
>
net.sf.hibernate.dialect.MySQLDialect
</
property
>
<!--
一次讀的數(shù)據(jù)庫(kù)記錄數(shù)
-->
<
property
name
="jdbc.fetch_size"
>
50
</
property
>
<!--
設(shè)定對(duì)數(shù)據(jù)庫(kù)進(jìn)行批量刪除
-->
<
property
name
="jdbc.batch_size"
>
30
</
property
>
<!
—下面為JNDI的配置 --
>
<!--
數(shù)據(jù)源的名稱(chēng)
-->
<
property
name
="connection.datasource"
>
java:comp/env/jdbc/datasourcename
</
property
>
<!--
Hibernate的連接加載類(lèi)
-->
<
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推薦使用的連接池,若需要使用該連接池時(shí),需要將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
>
<!--
顯示實(shí)際操作數(shù)據(jù)庫(kù)時(shí)的SQL
-->
<
property
name
="show_sql"
>
true
</
property
>
<!--
SQL方言,這邊設(shè)定的是MySQL
-->
<
property
name
="dialect"
>
net.sf.hibernate.dialect.MySQLDialect
</
property
>
<!--
驅(qū)動(dòng)程序,在后續(xù)的章節(jié)中將講述mysql、sqlserver和Oracle數(shù)據(jù)庫(kù)的配置
-->
<
property
name
="connection.driver_class"
>
……
</
property
>
<!--
JDBC URL
-->
<
property
name
="connection.url"
>
……
</
property
>
<!--
數(shù)據(jù)庫(kù)用戶(hù)名
-->
<
property
name
="connection.username"
>
user
</
property
>
<!--
數(shù)據(jù)庫(kù)密碼
-->
<
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
>
<!--
對(duì)象與數(shù)據(jù)庫(kù)表格映像文件
-->
<
mapping
resource
="com/amigo/pojo/User.hbm.xml"
/>
<
mapping
resource
="com/amigo/pojo/Org.hbm.xml"
/>
</
session-factory
>
</
hibernate-configuration
>
在上述配置中,Hibernate根據(jù)配置文件生成連接,再交給c3p0管理。
3. proxool連接池
proxool跟c3p0以及dbcp不一樣,它是自己生成連接的,因此連接信息放在proxool配置文件中。使用它時(shí),需要將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
>
<!--
顯示實(shí)際操作數(shù)據(jù)庫(kù)時(shí)的SQL
-->
<
property
name
="show_sql"
>
true
</
property
>
<!--
SQL方言,這邊設(shè)定的是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
>
<!--
對(duì)象與數(shù)據(jù)庫(kù)表格映像文件
-->
<
mapping
resource
="com/amigo/pojo/User.hbm.xml"
/>
<
mapping
resource
="com/amigo/pojo/Org.hbm.xml"
/>
</
session-factory
>
</
hibernate-configuration
>
在hibernate.cfg.xml的同目錄下編寫(xiě)proxool的配置文件:ProxoolConf.xml,該文件的配置實(shí)例如下:
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只能管理由自己產(chǎn)生的連接
-->
<!--
驅(qū)動(dòng)的url
-->
<!--
jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=GBK
-->
<
driver-url
>
…
</
driver-url
>
<!--
驅(qū)動(dòng)類(lèi),eg. com.mysql.jdbc.Driver
-->
<
driver-class
>
…
</
driver-class
>
<
driver-properties
>
<!--
數(shù)據(jù)庫(kù)用戶(hù)名,eg. value為root
-->
<
property
name
="user"
value
="…"
/>
<!--
數(shù)據(jù)庫(kù)密碼,eg. value為root
-->
<
property
name
="password"
value
="…."
/>
</
driver-properties
>
<!--
proxool自動(dòng)偵察各個(gè)連接狀態(tài)的時(shí)間間隔(毫秒),偵察到空閑的連接就馬上回收,超時(shí)的銷(xiāo)毀
-->
<
house-keeping-sleep-time
>
90000
</
house-keeping-sleep-time
>
<!--
指因未有空閑連接可以分配而在隊(duì)列中等候的最大請(qǐng)求數(shù),超過(guò)這個(gè)請(qǐng)求數(shù)的用戶(hù)連接就不會(huì)被接受
-->
<
maximum-new-connections
>
20
</
maximum-new-connections
>
<!--
最少保持的空閑連接數(shù)
-->
<
prototype-count
>
5
</
prototype-count
>
<!--
允許最大連接數(shù),超過(guò)了這個(gè)連接,再有請(qǐng)求時(shí),就排在隊(duì)列中等候,最大的等待請(qǐng)求數(shù)由maximum-new-connections決定
-->
<
maximum-connection-count
>
100
</
maximum-connection-count
>
<!--
最小連接數(shù)
-->
<
minimum-connection-count
>
10
</
minimum-connection-count
>
</
proxool
>
</
something-else-entirely
>
4. dbcp連接池
在hibernate3.0中,已經(jīng)不再支持dbcp了,hibernate的作者在hibernate.org中,明確指出在實(shí)踐中發(fā)現(xiàn)dbcp有 BUG,在某些種情會(huì)產(chǎn)生很多空連接不能釋放,所以拋棄了對(duì)dbcp的支持。若需要使用dbcp,開(kāi)發(fā)人員還需要將commons-pool-1.2.jar 和commons-dbcp-1.2.1.jar兩個(gè)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
>
<!--
顯示實(shí)際操作數(shù)據(jù)庫(kù)時(shí)的SQL
-->
<
property
name
="show_sql"
>
true
</
property
>
<!--
SQL方言,這邊設(shè)定的是MySQL
-->
<
property
name
="dialect"
>
net.sf.hibernate.dialect.MySQLDialect
</
property
>
<!--
驅(qū)動(dòng)程序,在后續(xù)的章節(jié)中將講述mysql、sqlserver和Oracle數(shù)據(jù)庫(kù)的配置
-->
<
property
name
="connection.driver_class"
>
……
</
property
>
<!--
JDBC URL
-->
<
property
name
="connection.url"
>
……
</
property
>
<!--
數(shù)據(jù)庫(kù)用戶(hù)名,eg. root
-->
<
property
name
="connection.username"
>
…
</
property
>
<!--
數(shù)據(jù)庫(kù)密碼, 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
>
<!--
對(duì)象與數(shù)據(jù)庫(kù)表格映像文件
-->
<
mapping
resource
="com/amigo/pojo/User.hbm.xml"
/>
<
mapping
resource
="com/amigo/pojo/Org.hbm.xml"
/>
</
session-factory
>
</
hibernate-configuration
>
5. MySql連接配置
在hibernate中,可以配置很多種數(shù)據(jù)庫(kù),例如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發(fā)送給數(shù)據(jù)庫(kù)的sql顯示出來(lái) --
>
<
property
name
="show_sql"
>
true
</
property
>
<!--
SQL方言,這邊設(shè)定的是MySQL
-->
<
property
name
="dialect"
>
net.sf.hibernate.dialect.MySQLDialect
</
property
>
<!--
一次讀的數(shù)據(jù)庫(kù)記錄數(shù)
-->
<
property
name
="jdbc.fetch_size"
>
50
</
property
>
<!--
設(shè)定對(duì)數(shù)據(jù)庫(kù)進(jìn)行批量刪除
-->
<
property
name
="jdbc.batch_size"
>
30
</
property
>
<!--
驅(qū)動(dòng)程序
-->
<
property
name
="connection.driver_class"
>
com.mysql.jdbc.Driver
</
property
>
<!--
JDBC URL
-->
<
property
name
="connection.url"
>
jdbc:mysql://localhost/dbname?characterEncoding=gb2312
</
property
>
<!--
數(shù)據(jù)庫(kù)用戶(hù)名
-->
<
property
name
="connection.username"
>
root
</
property
>
<!--
數(shù)據(jù)庫(kù)密碼
-->
<
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
>
上面使用的驅(qū)動(dòng)類(lèi)是com.mysql.jdbc.Driver。需要將MySql的連接器jar包(eg. mysql-connector-java-5.0.4-bin.jar)加入到classpath中。
6. Sql Server連接配置
本小節(jié)講述一下Sql Server數(shù)據(jù)庫(kù)的hibernate連接設(shè)置,在此只給出連接部分的內(nèi)容,其余部分與2.2.1.5一樣,在此不再贅述。內(nèi)容如下:
<!--
驅(qū)動(dòng)程序
-->
<
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
>
<!--
數(shù)據(jù)庫(kù)用戶(hù)名
-->
<
property
name
="connection.username"
>
sa
</
property
>
<!--
數(shù)據(jù)庫(kù)密碼
-->
<
property
name
="connection.password"
></
property
>
上例的驅(qū)動(dòng)類(lèi)使用的是jtds的驅(qū)動(dòng)類(lèi),因此讀者需要將jtds的jar包(eg. jtds-1.2.jar)加入到classpath中。
7. Oracle連接配置
本小節(jié)講述一下Sql Server數(shù)據(jù)庫(kù)的hibernate連接設(shè)置,在此只給出連接部分的內(nèi)容,其余部分與2.2.1.5一樣,在此不再贅述。內(nèi)容如下:
<!--
驅(qū)動(dòng)程序
-->
<
property
name
="connection.driver_class"
>
oracle.jdbc.driver.OracleDriver
</
property
>
<!--
JDBC URL
-->
<
property
name
="connection.url"
>
jdbc:oracle:thin:@localhost:1521:dbname
</
property
>
<!--
數(shù)據(jù)庫(kù)用戶(hù)名
-->
<
property
name
="connection.username"
>
test
</
property
>
<!--
數(shù)據(jù)庫(kù)密碼
-->
<
property
name
="connection.password"
>
test
</
property
>
上例使用的驅(qū)動(dòng)類(lèi)為:oracle.jdbc.driver.OracleDriver,開(kāi)發(fā)人員需要將相關(guān)的jar包(ojdbc14.jar)加入到classpath中。
發(fā)表于 2008-01-04 09:12
大田斗
閱讀(34057)
評(píng)論(1)
編輯
收藏
所屬分類(lèi):
Hibernate
評(píng)論
#
re: hibernate.cfg.xml配置
好全啊 .. 棒棒噠 ~ !
junqinag.yang
評(píng)論于 2015-11-03 11:22
回復(fù)
更多評(píng)論
新用戶(hù)注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶(hù)
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
相關(guān)文章:
spring+hibernate的clob大字段處理(轉(zhuǎn)載于javaeye論壇)
hibernate 樂(lè)觀鎖與悲觀鎖使用
通用Dao 設(shè)計(jì) 2
Hibernate 3 Formulas(翻譯)
hibernate集合映射inverse和cascade詳解
采用p6spy完整顯示hibernate的SQL語(yǔ)句 [zt]
spring +hibernate 啟動(dòng)優(yōu)化【轉(zhuǎn)】
Could not initialize proxy - the owning Session was closed ---Hibernate與延遲加載:
hibernate.cfg.xml配置
hibernate部分問(wèn)題總結(jié)
<
2025年7月
>
日
一
二
三
四
五
六
29
30
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
31
1
2
3
4
5
6
7
8
9
導(dǎo)航
BlogJava
首頁(yè)
發(fā)新隨筆
發(fā)新文章
聯(lián)系
聚合
管理
統(tǒng)計(jì)
隨筆: 32
文章: 427
評(píng)論: 144
引用: 0
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(5)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆檔案
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)
文章分類(lèi)
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)
開(kāi)源opensource(48)
(rss)
數(shù)據(jù)庫(kù)DateBase(30)
(rss)
設(shè)計(jì)模式(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特效網(wǎng)站
cndiy nio
GRO
Hani Suleiman's blog
Java之路
java論壇
J道
mule
mule 入門(mén)
oksonic(動(dòng)畫(huà)教程)
一路由你
中國(guó)eclipse
八進(jìn)制
在線源碼
多線程實(shí)戰(zhàn)
天火
小米的blogjava
幻境伯克----jface/swt
很全的博克-強(qiáng)
每日一得
滿(mǎn)江紅
邢紅瑞
飛翔
鳥(niǎo)詩(shī)選(js)
鳥(niǎo)食軒 (dhtml)
工具
apache中文手冊(cè)
extjs學(xué)習(xí)
iconFindre
java 安全
javaresearch
java技巧網(wǎng)
js之王
matrix(study)
prototype api
spring中文
北京IT企業(yè)速查
在線流程圖工具
雅虎翻譯
朋友
Happyshow
hibernate異常
skywalker
sunshow
xf
亞光
同云博客
小弟鵬
張玉磊
昕
李陽(yáng)
黃鳴
搜索
積分與排名
積分 - 1104423
排名 - 28
最新評(píng)論
1.?re: hibernate.cfg.xml配置
好全啊 .. 棒棒噠 ~ !
--junqinag.yang
2.?re: Quartz任務(wù)調(diào)度快速入門(mén)
我現(xiàn)在來(lái)看還是覺(jué)得不錯(cuò)
--小任
3.?re: js中this的總結(jié)
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--pam
4.?re: Quartz任務(wù)調(diào)度快速入門(mén)
樓主辛苦
--yd
5.?re: Quartz任務(wù)調(diào)度快速入門(mén)
頂了,內(nèi)容寫(xiě)的很好
--sen
閱讀排行榜
1.?網(wǎng)頁(yè)不緩存(3563)
2.?Form嵌套引起的問(wèn)題 (2867)
3.?解決IE下CSS背景圖片閃爍的Bug(2458)
4.?Spring AOP的動(dòng)態(tài)載入原理(2416)
5.?如何制作漂亮的Excel表格(2057)
評(píng)論排行榜
1.?北京戶(hù)口--吃官司(5)
2.?開(kāi)始→運(yùn)行→輸入的命令集錦(3)
3.?讓網(wǎng)頁(yè)上的所有圖片動(dòng)起來(lái)(2)
4.?Dom4j 編碼問(wèn)題徹底解決 (1)
5.?心情不爽(1)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 大田斗
主站蜘蛛池模板:
99久久亚洲精品无码毛片
|
最近免费最新高清中文字幕韩国
|
免费一看一级毛片
|
亚洲av无码日韩av无码网站冲
|
在线视频免费观看www动漫
|
亚洲av无码专区青青草原
|
免费无码一区二区三区蜜桃大
|
亚洲欧美精品午睡沙发
|
日韩免费a级在线观看
|
老妇激情毛片免费
|
亚洲精品亚洲人成在线观看下载
|
最好免费观看韩国+日本
|
亚洲欧美日韩国产成人
|
yy6080亚洲一级理论
|
一级毛片aa高清免费观看
|
亚洲乳大丰满中文字幕
|
久久精品免费观看国产
|
亚洲婷婷天堂在线综合
|
成人免费看片又大又黄
|
羞羞漫画页面免费入口欢迎你
|
久久久久久亚洲精品不卡
|
日本高清免费观看
|
久久精品亚洲AV久久久无码
|
大陆一级毛片免费视频观看
|
一级做受视频免费是看美女
|
亚洲国产精品自在线一区二区
|
97在线观看永久免费视频
|
亚洲精品无码不卡在线播放
|
亚洲欧洲日产国码高潮αv
|
国色精品va在线观看免费视频
|
亚洲经典在线观看
|
国产男女猛烈无遮挡免费视频
|
最新亚洲成av人免费看
|
久久久久久亚洲精品影院
|
亚洲精品岛国片在线观看
|
久久免费高清视频
|
亚洲av日韩精品久久久久久a
|
亚洲午夜福利在线观看
|
免免费国产AAAAA片
|
二级毛片免费观看全程
|
亚洲蜜芽在线精品一区
|