hibernate應(yīng)用開發(fā)完全手冊_第1頁
hibernate應(yīng)用開發(fā)完全手冊_第2頁
hibernate應(yīng)用開發(fā)完全手冊_第3頁
hibernate應(yīng)用開發(fā)完全手冊_第4頁
hibernate應(yīng)用開發(fā)完全手冊_第5頁
已閱讀5頁,還剩223頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Hibernate應(yīng)用開發(fā)完全手冊

Uilx'mate

應(yīng)用開發(fā)

完全了朋

*y?

?書名:Hibernate應(yīng)用開發(fā)完全手冊

?作者:明日科技編著

?來源:人民郵電出版社

?出版時間:

?ISBN:9787115164513

?定價:59元

內(nèi)容介紹:

本書以使用Hibernate技術(shù)開發(fā)網(wǎng)絡(luò)應(yīng)用程序涉及的實用技術(shù)為中心,全面、系統(tǒng)地介紹了使用Hibernate

技術(shù)開發(fā)應(yīng)用程序時必須掌握的技術(shù)、方法和過程。本書分為四篇,共19章,主要介紹了Hibernate的環(huán)

境搭建及使用Hibernate時必須掌握的基本技術(shù)等基礎(chǔ)知識;在Hibernate中映射關(guān)聯(lián)關(guān)系、事務(wù)應(yīng)用、檢

索策略、映射值類型集合等高級應(yīng)用;小型網(wǎng)站或應(yīng)用程序的開發(fā)思路、方法和過程;基于Struts+Hibernate

開發(fā)網(wǎng)站的基本思路、方法和過程,包括運用Struts+Hibernate開發(fā)物資管理系統(tǒng)和電子商...

目錄

?皿

序言

?前言

第2章Hibernate入門

?2.1環(huán)境搭建

?2.2創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)表

?2.3創(chuàng)建Hibernate配置文件

?2.4通過Hibernate連接數(shù)據(jù)庫

?2.5創(chuàng)建持久化類及映射文件

?2.6構(gòu)建SessionFactory

?2.7Session的創(chuàng)建與關(guān)閉

?2.8在Eclipse」二倉U建Hibernate實例

?2.9在JBuildci?上創(chuàng)建Hibernate饃例

第18章運用Struts+Hibemate開發(fā)物資管理系統(tǒng)

?18.1需求分析

?18.2系統(tǒng)設(shè)計

?18.3數(shù)據(jù)庫設(shè)計

?18.4網(wǎng)站總體設(shè)計

?18.5配置Struts

?18.6配置Hibernate配置文件

?18.7公共類的編寫

?18.8用戶管理模塊

?18.9物資管理模塊

18.10物資入庫模塊

18.11物資出庫模塊

18.12物資處理模塊

18.13查詢統(tǒng)計模塊

18.14系統(tǒng)初始化模塊

18.15疑難問題分析與解決

Hibernate應(yīng)用開發(fā)完全手冊

2.1環(huán)境搭建

當前章節(jié):2.1環(huán)境搭建

,目錄

,前言

?2.2創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)表

■2.3創(chuàng)建Hibernate配置文件

?2.4通過Hibernate連接數(shù)據(jù)庫

?2.5創(chuàng)建持久化類及映射文件

對于初學者,可能最煩惱的事情就是應(yīng)用程序的環(huán)境搭建。為了讓讀

者快速入門,本章將從搭建開發(fā)環(huán)境入手,按照實際開發(fā)流程介紹H

ibernate的具體配置,然后通過具體實例介紹在不同開發(fā)工具上創(chuàng)建

Hibernate實例的方法。

本章包括以下內(nèi)容:

?安裝和配置JDK1.5

?安裝SQLServer2000

?Hibernate包的下載與放置

?創(chuàng)建SQLServer和MySQL數(shù)據(jù)庫及數(shù)據(jù)表

?創(chuàng)建Hibernate配置文件

?通過Hibernate連接SQLServer>MySQL和Oracle數(shù)據(jù)庫

?創(chuàng)建持久化類及映射文件

?構(gòu)建SessionFactory

?在Eclipse上創(chuàng)建Hibernate實例

?在JBuilder上創(chuàng)建Hibernate實例

2.1環(huán)境搭建

2.1.1安裝和配置JDK1.5

編譯和運行Java程序時必須安裝JDK。本書中使用的JDK版本為、'jd

k-l_5_0_07,z,讀者可以在網(wǎng)站下載。

■I視頻錄像:mr\02\lx\安裝和配置JDKL5.exe

1.安裝JDK1.5

(1)在安裝JDK1.5之前,請確認系統(tǒng)中沒有安裝其他的JDK,

如果安裝多個JDK,在進行配置時會有沖突。關(guān)閉所有正在運行的程序,雙擊j

dkT_5_0_07-windows-i586-p.exe文件,運行安裝程序。安裝向?qū)笥脩?/p>

接受Sun公司的許可協(xié)議,選擇該對話框中的“我接受該許可證協(xié)議中的條款

(A)”單選按鈕,接受許可協(xié)議,單擊【下一步】按鈕,將彈出組件安裝對話框。

在該對話框中可進行安裝路徑及功能的選擇,單擊【更改】按鈕,將安裝路徑指

定到D:\jdkl.5.0_07目錄下,如圖2.1所示。

(2)單擊【下一步】按鈕,開始安裝JDK。在安裝過程中會彈出選擇支持語

言的“自定義安裝”對話框,一般情況下采用默認值。單擊【下一步】按鈕,將

彈出如圖2.2所示的“瀏覽器注冊”對話框,選擇綁定瀏覽器,這里默認選擇I

E瀏覽器,單擊【下一步】按鈕,繼續(xù)安裝JDK。在彈出安裝完成的提示對話框

中,單擊【完成】按鈕,即可完成JDK的安裝。

圖2.1選擇組件安裝對話框圖2.2選擇要將JDK綁定的瀏覽器

知名qp(jAVAjcn

劃E9.|D\jdH5」0M

,艘|”]

2.配置環(huán)境變量ffl25■*?*

(1)在“我的電腦”上單擊鼠標右鍵,選擇“屬性”菜單項。在彈出的“系

統(tǒng)特性”對話框中選擇“高級”選項卡,如圖2.3所示。

(2)單擊“環(huán)境變量”按鈕,彈出如圖2.4所示的“環(huán)境變量”對話框。

在這里可以

圖2.3系統(tǒng)特性設(shè)置圖2.4設(shè)置環(huán)境變量

添加針對單個用戶的“用戶變量”和針對所有用戶的“系統(tǒng)變量”。單擊“系統(tǒng)

變量”區(qū)域中的“新建”按鈕,將彈出如圖2.5所示的“新建系統(tǒng)變量”對話框。

(3)在“變量名”文本框中輸入JAVA_HOME,在“變量值”文本框中輸入J

DK的安裝路徑D:\jdkL5.0_07,單擊''確定”按鈕,完成環(huán)境變量JAVA_HOME

的配置。

(4)在系統(tǒng)變量中查看PATH變量;如果不存在,則新建變量PATH,變量值

為:

%JAVA_HOME%\bin;

(5)在系統(tǒng)變量中查看CLASSPATH變量,如果不存在,則新建變量CLASSP

ATH,變量值為:

%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

3.測試JDK是否能夠在機器上運行

在完成JDK的安裝后,可以在“運行”窗口中輸入emd命令,在進入的DOS

環(huán)境中直接輸入javac。按〈Enter〉鍵后,系統(tǒng)會輸出javac的幫助信息,如

圖2.6所示。這說明已經(jīng)成功配置了JDK,否則需要仔細檢查上面步驟的配置是

否正確。

Mt*iterator>JAV?C

$3息

.住2

8信

W1Z試

^-信-

-標K

.-三

-e執(zhí)

-的

-v?rW??-己fjr

-4?**?<?<As戶

Fl的

-clavsnAtii技

增*

y><?S>陵

^^件

-??urc?tM<ii<ttS>,¥導(dǎo)

(婚生)位

boatcron

EMP*4目和電

5的

一s

-?ndorvaddir*《白宋》錄

關(guān)

<1膿

T4目和相n

聯(lián)

拉R

--5c.〈野本〉尿

-t?rv*t?祇本〉定

??親?

德s

£諛

的a

淹s

■X忑

阡時

<>?拾,

7<>KS>R4.k

a:\BocuRen??—d£?lttn;139d??lei??r<l?,:

圖2.6測試javac

2.1.2安裝SQLServer2000

本書中使用的數(shù)據(jù)庫為SQLServer2000個人版。下面以在Windows2000

下安裝SQLServer2000為例介紹SQLServer的安裝過程。

■I視頻錄像:mr\02\lx\安裝SOLServer2000.exe

(1)將SQLServer2000安裝盤放入光驅(qū),運行安裝程序,將彈出如圖2.

7所示的安裝界面。

,注意:如果光盤沒有自動運行,可以雙擊光盤根目錄下的Autorun.exe

文件啟動安裝程序。

(2)在安裝界面中選擇“安裝SQLServer2000組件”選項,進入到如圖安

8所示的“安裝組件”對話框。

圖2.7啟動界面圖2.8安裝組件對話框

(3)在“安裝組件”對話框中選擇“安裝數(shù)據(jù)庫服務(wù)器”選項,打開SQL

Server安裝向?qū)?,單擊【下一步】按鈕,將彈出“計算機名”對話框。

(4)在“計算機名”對話框中,要輸入創(chuàng)建的SQLServer實例或修改現(xiàn)有

的SQLServer實例所在的計算機名稱,這里選擇“本地計算機”選項,如圖2.

9所示。單擊【下一步】按鈕,彈出“安裝選擇”對話框,在該對話框中選擇安

裝方式,這里選擇“創(chuàng)建新的SQLServer實例,或安裝客戶端工具”選項,如

圖2.10所示。

圖2.9''計算機名”對話框圖2.10''安裝選擇”對話框

(5)單擊【下一步】按鈕,彈出“用戶信息”對話

框。在“用戶信息”對話框的“姓名”和“公司”文本框

中輸入用戶姓名和公司名稱(這些信息也可以省略),如

am■用戶

圖2.11所示。

(6)單擊【下一步】按鈕,彈出“軟件許可證協(xié)議”對話框,單擊【是】

按鈕,彈出“安裝定義”對話框,如圖2.12所示。在“安裝定義”對話框中選

擇“服務(wù)器和客戶端工具”選項。

(7)單擊【下一步】按鈕,彈出“實例名”對話框。在“實例名”對話框

中設(shè)置安裝SQLServer的實例名稱,可以使用默認的實例名,即選中“默認”

復(fù)選框。如果要自己設(shè)置實例名,需要先取消“默認”復(fù)選框的選取,然后在“實

例名”文本框中輸入相應(yīng)的實例名。這里選擇默認的實例名,如圖2.13所示。

單擊【下一步】按鈕,彈出“安裝類型”對話框。

圖2.12''安裝定義”對話框圖2.13''實例名”對話框

(8)在“安裝類型”對話框中選擇“典型”選項,即進行典型安裝,如果

用戶要更改默認的安裝路徑,可以單擊【瀏覽】按鈕重新指定安裝路徑(這里選

擇默認設(shè)置),如圖2.14所示。

圖2.14''安裝類型”對話框

(9)單擊【下一步】按鈕,彈出“服務(wù)帳戶”對話框。在“服務(wù)帳戶”對

話框中設(shè)置用戶賬戶。這里選擇''使用本地系統(tǒng)帳戶”選項,如圖2.15所示。

,注意:如果使用的系統(tǒng)為WindowsXP,只能選擇''使用本地系統(tǒng)帳戶”

選項。

(10)單擊【下一步】按鈕,彈出“身份驗證模式”對話框。在“身份驗證

模式”對話框中可以選擇用于SQLServer2000安裝的安全模式。這里選擇“混

合模式”選項,同時勾選“空密碼”復(fù)選框,如圖2.16所示。

圖2.15''服務(wù)帳戶''對話框圖2.16''身份驗證模式”對話框

(11)單擊【下一步】按鈕,彈出“開始復(fù)制文件”對話框,在“開始復(fù)制

文件”對話框中直接單擊【下一步】按鈕開始安裝程序。安裝成功后,將彈出“安

裝完畢”對話框,單擊【完成】按鈕即完成SQLServer2000的安裝。

2.1.3Hibernate包的下載與放置

1.下載Hibernate包

使用Hibernate持久化技術(shù),需要獲得Hibernate的Jar文件及相應(yīng)的第三

方包,這些包可以到它的官方網(wǎng)站(http://www.hibernate,org)獲得,具體步

驟如下。

(1)在IE的地址欄中輸入URL地址http:〃www.hibernate,org,然后按<

Enter》鍵,進入如圖2.17所示的Hibernate網(wǎng)站首頁。

圖2.17Hibernate網(wǎng)站首頁

(2)在Hibernate網(wǎng)站首頁中單擊左側(cè)的“Download”超級鏈接,將進入

到如圖2.18所示的DownloadOverview頁面。

圖2.18DownloadOverview頁面

(3)在DownloadOverview頁面中單擊“BrowseallHibernatedownload”

超級鏈接,將進入到如圖2.19所示的Files頁面。

圖2.19Files頁面

(4)在Files頁面中列出了Hibernate不同版本及工具的超級鏈接,單擊

"hibernate3”超級鏈接,進入到如圖2.20所示的Hibernat3下載超級鏈接

列表頁面。

圖2.20Hibernat3下載超級鏈接列表頁面

(5)在該頁面中單擊"hibernate-3.2.1.ga.zip”超級鏈接,將進入到如

圖2.21所示的Hibernate3.2下載頁面。

圖2.21Hibernate3.2下載頁面

(6)在Hibernate3.2下載頁面中單擊“thisdirectlink”超級鏈接,

即可彈出下載對話框下載Hibernate3.2包了。

夕注意:Hibernat網(wǎng)站隨時會更新,下載Hibernate包的位置可能會有變

化。如果按照以上步驟中給出的方法不能下載Hibernate3.2包,可以到ht

tp://的''常用軟件下載”欄目中獲得。

2.放置Hibernate包

Hibernate包下載完畢后,將得到一個zip的壓縮文件。將該文件解壓縮到

“D:\H”目錄(也可以指定到其他目錄)下,這時在目錄下將出現(xiàn)一

個包含Hibernate的Jar文件和其他第三方包的文件夾hibernate_3.2。此時,

如果采用開發(fā)工具(如Eclispse或Builder),可以在開發(fā)工具中將Hibernat

e包的位置指定到"D:\H\hibernate-3.2"目錄下,否則需要手工將hibernate

3.jar和lib文件夾內(nèi)的所有Jar包拷貝到應(yīng)用hibernate程序的“WEB-INF\li

b”文件夾下。

2.2創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)表

/2007-9-1216:33:00

圖書導(dǎo)讀

當前章節(jié):2.2創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)表

?目錄

,前言

?2.1環(huán)境搭建

?2.3創(chuàng)建Hibernate配置文件

,2.4通過Hibernate連接數(shù)據(jù)庫

?2.5創(chuàng)建持久化類及映射文件

2.2創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)表

2.2.1創(chuàng)建SQLServer數(shù)據(jù)庫及數(shù)據(jù)表

SQLServer提供了兩種創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)表的方法,一種是通過企業(yè)管理器

創(chuàng)建,另一種是通過在查詢分析器中執(zhí)行創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)表的SQL語句創(chuàng)建。

通過企業(yè)管理器創(chuàng)建數(shù)據(jù)庫比較方便、快捷,下面具體介紹。

視頻錄像:mr\02\lx\創(chuàng)建SQLServer數(shù)據(jù)庫及數(shù)據(jù)表.exe

1.創(chuàng)建數(shù)據(jù)庫

(1)啟動企業(yè)管理器,展開服務(wù)器組及指定的服務(wù)器,如圖2.22所示。

圖2.22MicrosoftSQLServer企業(yè)管理器

(2)用鼠標右鍵單擊“數(shù)據(jù)庫”節(jié)點,在彈出的快捷菜單中選擇“新建數(shù)

據(jù)庫”命令,彈出如圖2.23所示的“數(shù)據(jù)庫屬性”對話框。

(3)在“數(shù)據(jù)庫屬性”對話框的“常規(guī)”選項卡中設(shè)置數(shù)據(jù)庫的名稱為db

_database02o

(4)單擊“確定”按鈕即可完成數(shù)據(jù)庫的創(chuàng)建操作。

說明:創(chuàng)建數(shù)據(jù)庫db_database02后,SQLServer2000系統(tǒng)會默認產(chǎn)生數(shù)據(jù)文件、'_db_

databaseO2Data.MDF”和事務(wù)日志文件''db_database02_Log.LDF"。

圖2.23''數(shù)據(jù)庫屬性”對話框

2.創(chuàng)建數(shù)據(jù)表

(1)啟動企業(yè)管理器,展開服務(wù)器組及指定的服務(wù)器。

(2)展開“數(shù)據(jù)庫”節(jié)點,展開指定的數(shù)據(jù)庫“db_database02”,用鼠標

右鍵單擊“表”選項,在彈出的快捷菜單中選擇'‘新建表"命令,如圖2.24所

示,或直接在工具欄中單擊圖標;,都可以打開“新建表”對話框,如圖2.25

所示。

圖2.24選擇新建表命令

(3)在“新建表”對話框中,輸入表的字段名,同時設(shè)置表的數(shù)據(jù)類型、

長度和允許空等屬性,如圖2.25所示。

說明:插入和刪除列時可以右鍵單擊相應(yīng)的列,在彈出的下拉菜單中選擇''插入列"或''刪除

列”命令即可。

(4)為了用戶名輸入值的惟一性,可以將name列定義為主鍵。選中列名為

name的行,在該行上單擊鼠標右鍵,在彈出的快捷菜單中選擇“設(shè)置主鍵”命

令,如圖2.26所示。直接單擊工具欄上的“學”按鈕,也可將name列設(shè)置為主

鍵。

圖2.25''新建表"對話框圖2.26設(shè)置主鍵

(5)設(shè)置完成后單擊工具欄中的【保存】按鈕,彈出如圖2.27所示的對話

框,在此對話框中輸入新建表的名稱“tb_user”,單擊【確定】按鈕,即可完

成數(shù)據(jù)表的創(chuàng)建。

圖2.27設(shè)置表名對話框

2.2.2創(chuàng)建MySQL數(shù)據(jù)庫及數(shù)據(jù)表

■I視頻錄像:mr\02\lx\創(chuàng)建MySQL數(shù)據(jù)庫及數(shù)據(jù)案.exe

1.創(chuàng)建數(shù)據(jù)庫

在MySQL中創(chuàng)建數(shù)據(jù)庫的語法格式如下:

CREATEDATABASEdatabase_name

其中,databasejame是要創(chuàng)建的數(shù)據(jù)庫名稱,該名稱必須是合法的,不能

夠與其他數(shù)據(jù)庫重名。數(shù)據(jù)庫(包括MySQL其他操作對象)命名有如下的一些規(guī)

則。

(1)名稱可以由任意字母、數(shù)字“一”或者“$”組成,可以使用上述的任

意字符開頭,但不能使用單獨的數(shù)字,那樣會造成與數(shù)值的混淆。

(2)在數(shù)據(jù)庫、表、列和索引的名稱中最多使用64個字符,而別名最多可

使用256個字符。

(3)不能使用MySQL的關(guān)鍵字作為數(shù)據(jù)庫、表名。

下面將以數(shù)據(jù)庫db_databaseO2為例介紹在MySQL中創(chuàng)建數(shù)據(jù)庫的過程。

(1)進入到MySQL的程序目錄\mysql\bin中,運行winmysqladmin.exe程

序,啟動MySQL服務(wù)器管理界面,如圖2.28所示。

如果運行后不能看到圖2.28所示的界面,則可以在任務(wù)欄右邊的系統(tǒng)托盤

中看到。圖標,綠燈亮表示MySQL數(shù)據(jù)庫已經(jīng)運行。

(2)在運行窗口中輸入“cmd”命令進入到DOS窗口,鍵入"mysql”命令

進入MySQL語言輸入界面,如圖2.29所示。

圖2.28MySQL服務(wù)器管理界面

圖2.29MySQL語言輸入界面

(3)鍵入“createdatabasedb_database02;“命令即可創(chuàng)建db_databas

e02數(shù)據(jù)庫,如圖2.30所示。

1KD:.WPOTky.ElZ,.EHUjtt7.101x|

createdatabasedh^dAt^bABeBS;:-

QueryOX,1revtected<fi.02aec>

■rJ

圖2.30創(chuàng)建數(shù)據(jù)庫完成

2.創(chuàng)建數(shù)據(jù)表

在MySQL中創(chuàng)建數(shù)據(jù)表的語法格式如下:

CREATE[TEMPORARY]TABLE[IFNOTEXISTS]table_name[(field_nametype[NOT

NULL|NULL][DEFAULTdefault_value][AUTOJNCREMENT][PRIMARYKEY][refer

ence_definition]PRIMARYKEY(index_field_name,.

參數(shù)說明:

tablename:表示數(shù)據(jù)表名稱。

NOTNULL|NULL:指出該列是否允許是空值??罩凳侵浮安恢馈被颉盁o

意義”的值,數(shù)據(jù)“0”和空格都不是空值。系統(tǒng)一般默認允許為空值,所以當

不允許為空值時,必須明確使用NOTNULL。

DEFAULTdefault_value:表示默認值。

AUTO_INCREMENT:表示是否是自動編號列,每個表只能有一個AUTOJNCREM

ENT列,并且必須被索引。AUTO_INCREMENT序列從1開始編號,第1個插入到數(shù)

據(jù)表中的記錄將被編號為1,以后插入的記錄將依次被編號為2、3等,每一個

自動生成的序列編號都將比該數(shù)據(jù)列里的當前最大值多l(xiāng)o

PRIMARYKEY:表示是否為主鍵。它是一個惟一的KEY。還有一個額外的約束,

即所有鍵列必須被定義為NOTNULLo在MySQL中,該列被命名為PRIMARY。一個

表只能有一個PRIMARYKEY。如表中沒有一個PRIMARYKEY,而某些應(yīng)用程序要

PRIMARYKEY,MySQL將返回第?個沒有任何NULL列的UNIQUE鍵,作為PRIMAR

YKEYo一個PRIMARYKEY可以是一個多列索引,但是不能在一個列規(guī)格說明中

使用PRIMARYKEY鍵屬性來創(chuàng)建一個多列索弓I。這樣做將僅僅標記單個列作為主

鍵。必須使用PRIMARYKEY(index_col_name,???)句法。如果PRIMARYKEY或U

NIQUE鍵只由一個列組成,并且列類型是整型,則可以用」owid引用它。

下面以在數(shù)據(jù)庫dbdatabase02中創(chuàng)建名稱為tb?manager的數(shù)據(jù)表為例,

介紹在MySQL中創(chuàng)建數(shù)據(jù)表的過程。

(1)進入到DOS窗口,鍵入"mysql”命令進入MySQL語言輸入界面。

(2)鍵入"usedb_database02w命令,打開db_database02數(shù)據(jù)庫。

(3)鍵入如下代碼創(chuàng)建數(shù)據(jù)表:

createtabletb_manager(idintunsignedprimarykeyauto_increment,namevarchar(3

0),pwdvarchar(30));

在MySQL語言輸入界面中,創(chuàng)建數(shù)據(jù)表的完整過程如圖2.31所示。

^IDlxj

nysql>usedb_dAtabA8eB2

chAn^ed

nysql>createtablaCb_jwmeger<idiniunsignedprimarykeyauto^incr?Ren<.n<mo

varc>>ar<30>,pvdvarchar(30>>?

QueryOK.0rcvtAffected<0.B6**c>

Ryaql>

圖2.31創(chuàng)建數(shù)據(jù)表

2.3創(chuàng)建Hibernate配置文件

http:〃/2007-9-1216:33:00

圖書導(dǎo)讀

當前章節(jié):2.3創(chuàng)建Hibernate配置文件

,前言

?2.1環(huán)境搭建

■2.2創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)表

?2.4通過Hibernate連接數(shù)據(jù)庫

?2.5創(chuàng)建持久化類及映射文件

,2.6構(gòu)建SessionFactory

2.3創(chuàng)建Hibernate配置文件

Hibernate配置文件主要用于配置數(shù)據(jù)庫連接和Hibernate運行時所需的各

種屬性,這個配置文件應(yīng)該位于應(yīng)用程序或Web程序的類文件夾classes中。H

ibernate配置文件支持兩種形式,一種是xml格式的配置文件,另一種是Java

屬性文件格式的配置文件,采用“鍵=值”的形式。建議采用xml格式的配置文

件。xml配置文件可以直接對映射文件進行配置,并由Hibernate自動加載,而

properties文件則必須在程序中通過編碼加載映射文件。

2.3.1創(chuàng)建xml格式的配置文件

Hibernate默認的xml格式的配置文件名稱為hibernate.cfg.xml。下面將

以一個典型的連接SQLServer2000的Hibernate配置文件為例,對xml格式的

配置文件進行解析。

<?xmlversion='1.0,encoding='UTF-8'?>

<!DOCTYPEhibernate-configuration

PUBLIC"-//Hibernate/HibernateConfigurationDTD//EN"

"/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<!-SessionFactory酉己置一〉

<session-factory>

指定數(shù)據(jù)庫使用的SQL方言。盡管多數(shù)關(guān)系數(shù)據(jù)庫都支持標準的SQL語言,

但是筆者建議在此指定自己的SQL方言。

<propertyname="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>

指定連接數(shù)據(jù)庫用的驅(qū)動,對于不同的關(guān)系數(shù)據(jù)庫,其驅(qū)動是不同的,需要

根據(jù)實際情況修改。

<propertyname="connection.driver_class">

com.microsoft.jdbc.sqlserver.SQLServerDriver

</property>

指定連接數(shù)據(jù)庫的路徑,對于不同的關(guān)系數(shù)據(jù)庫,其URL路徑是不同的,需

要根據(jù)實際情況修改。

<propertyname="connection.url">

jdbc:microsoft:sqlserver:〃127.0.0.l:1433;databaseName=^據(jù)庫名

</property>

指定連接數(shù)據(jù)庫的用戶名。

<propertyname="connection.username”>用戶名〈/property>

指定連接數(shù)據(jù)庫的密碼;如果密碼為空,則在“密碼”的位置不寫任何字符。

<propertyname="connection.password''>密ii馬〈/property〉

指定當程序運行時是否在控制臺輸出SQL語句。當show_sql屬性為true時,

表示在控制臺輸出SQL語句,默認為false。建議在調(diào)試程序時設(shè)為true,發(fā)布

程序之前再改為false,因為輸出SQL語句會影響程序的運行速度。

<propertyname="show_sql">true</property>

指定當程序運行時,是否按照標準格式在控制臺上輸出SQL語句。當forma

t_sql屬性為true時,表示按照標準格式在控制臺上輸出SQL語句,默認為fa

Ise。建議在調(diào)試程序時設(shè)為true,發(fā)布程序之前再改為false。該屬性只有當

showsql屬性為true時才有效。

<propertyname="format_sql">true</property>

指定當程序運行時,是否在SQL語句中輸出便于調(diào)試的注釋信息。當show_

sql屬性為true時,表示輸出注釋信息,默認為false。建議在調(diào)試程序時設(shè)為

true,發(fā)布程序之前再改為falseo該屬性只有當showsql屬性為true時才有

效。

<propertyname="use_sql_comments">true</property>

指定持久化類映射文件的位置,由包名與映射文件組成,包名與映射文件之

間用“/”分隔。

<mappingresource="com/BranchForm.hbm.xml7>

</session-factory>

</hibernate-configuration>

在上面的配置文件hibernate.cfg.xml中,包含了一系列的屬性元素,Hibe

mate將根據(jù)這些屬性元素連接數(shù)據(jù)庫。

2.3.2創(chuàng)建Java屬性文件格式的配置文件

Hibernate默認的Java屬性文件格式的配置文件名稱為hibernate,propert

ies,其基本格式如下:

#指定連接數(shù)據(jù)庫使用的SQL方言#

hibernate.dialect=org.hibernate.dialect.SQLServerDialect

#指定連接數(shù)據(jù)庫的驅(qū)動程序#

hibernate.connection.driver_class=com.microsoft.jdbc.sqlserver.SQLServerDriver

#指定連接數(shù)據(jù)庫的URL#

hibernate.connection.url=jdbc:microsoft:sqlserver:〃127.0.0.l:1433;databaseName=數(shù)據(jù)

庫名

#指定連接數(shù)據(jù)庫的用戶名#

hibernate.connection.username=用戶名

#指定連接數(shù)據(jù)庫的密碼#

hibernate.connection.password=密碼

#指定在執(zhí)行程序時,是否在控制臺上輸出SQL語句#

hibernate.show_sql=true

#指定是否按照標準格式在控制臺上輸出SQL語句#

hibernate.format_sql=true

#指定是否在SQL語句中輸出便于調(diào)試的注釋信息#

hibernate.use_sql_comments=true

perties文件中包含了一系列屬性的設(shè)置值,Hibernate將根

據(jù)這些屬性來連接數(shù)據(jù)庫。本例為連接SQLServer2000數(shù)據(jù)庫時的文件內(nèi)容。

2.3.3Hibernate配置屬性

Hibernate3.2提供的配置屬性如表2.1所示。

表2.1Hibernate3.2提供的配置屬性表

屬性說明

hibernate.dialect連接數(shù)據(jù)庫使用的SQL方言

hibernate.show_sql指定是否在控制臺上輸出SQL語句,值為true或false

hibernate.format_sql指定是否按照標準格式在控制臺上輸出SQL語句,值為true或fake

在生成的SQL中,將給定的schema/tablespace附加于非全限定名

hibernate.default_schema

的表名上

續(xù)表

屬性說明

hibernate.default_catalog在生成的SQL中,將給定的catalog附加于非全限定名的表名上

hibernate.session_factory_nameSessionFactory創(chuàng)建后,將自動使用這個名字綁定到JNDI中

hibernate.max_fetch_depth為單向關(guān)聯(lián)(一對一、多對一)的外連接抓取(OuterJoinFetch)

樹設(shè)置最大深度,值為0意味著將關(guān)閉默認的外連接抓取。建議

在。到3之間取值

為Hibernate關(guān)聯(lián)的批量抓取設(shè)置默認數(shù)量。建議使用4、8或

hibernate.defauIt_batch_fetch_size

16

為由SessionFactory打開的所有Session指定默認的實體表現(xiàn)模

hibernate.default_entity_mode

強制Hibernate按照被更新數(shù)據(jù)的主鍵為SQL更新排序。這么做

hibernate.order_updates

將減少在高并發(fā)系統(tǒng)中事務(wù)的死鎖。值為true或false

用于指定Hibernate是否收集有助于性能調(diào)節(jié)的統(tǒng)計數(shù)據(jù),值為

hibernate.generate_statistics

true或false,默認值為false

用于指定在對象被刪除時、生成的標識屬性是否被重設(shè)為默認

hibernate.use_identifer_rollback

值,值為true或false,默認值為false

用于指定是否在SQL語句中輸出便于調(diào)試的注釋信息,值為true

hibernate.use_sql_comments

或false,默認值為false

2.4通過Hibernate連接數(shù)據(jù)庫

/2007-9-1216:33:00

圖書導(dǎo)讀

當前章節(jié):2.4通過Hibernate連接數(shù)據(jù)庫

12.1環(huán)境搭建

?2.2創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)表

?2.3創(chuàng)建Hibernate配置文件

?2.5創(chuàng)建持久化類及映射文件

,2.6構(gòu)建SessionFactory

12.7Session的創(chuàng)建與關(guān)閉

2.4通過Hibernate連接數(shù)據(jù)庫

Hibernate能夠訪問多種關(guān)系數(shù)據(jù)庫,如SQLServer、MySQL、Oracle和Ac

cess等。在訪問這些數(shù)據(jù)庫時,只需要在Hibernate的配置文件中指定正確的

連接屬性值。下面將給出通過Hibernate連接幾種常用數(shù)據(jù)庫的Hibernate配置

文件。

2.4.1連接SQLServer2000數(shù)據(jù)庫的Hibernate配置文件

連接SQLServer2000的Hibernate配置文件有兩種格式,一種是xml格式

的,另一種是Java屬性文件格式的。下面將分別給出這兩種格式的配置文件的

代碼。

1.xml格式的配置文件

下面將給出連接本地SQLServer服務(wù)器上的db_database02數(shù)據(jù)庫時Hibe

mate配置文件hibernate,cfg.xml的代碼。

例程2-1:光盤、mr\02\sl\01\hibernate.cfg.xml

<?xmlversion=,1.0,encoding='UTF-8'?>

<!DOCTYPEhibernate-configuration

PUBLIC"7/Hibernate/HibernateConfigurationDTD//EN"

"/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<!-SessionFactory配置一>

<session-factory>

v!一指定數(shù)據(jù)庫使用的SQL方言

<propertyname="hibernate.dialect">

org.hibernate.dialect.SQLServerDialect

</property>

<!一指定連接數(shù)據(jù)庫用的驅(qū)動一>

<propertyname=nconnection.driver_class,,>

com.microsoft.jdbc.sqlserver.SQLServerDriver

</property>

<!一指定連接數(shù)據(jù)庫的路徑

<propertyname=',connection.urr,>

jdbc:microsoft:sqlserver://:1433;databaseName=db_database02

</property>

v!一指定連接數(shù)據(jù)庫的用戶名?->

<propertyname="connection.username">sa</property>

<!--指定連接數(shù)據(jù)庫的密碼一,

<propertyname=nconnection.password"></property>

<!--當show_sql屬性為true時,表示當程序運行時在控制臺輸出SQL語句,默認為false-

->

<propertyname="show_sql">true</property>

<!--指定是否按照標準格式在控制臺上輸出SQL語句一>

<propertyname="format_sql">true</property>

<!--指定是否在SQL語句中輸出便于調(diào)試的注釋信息一>

<propertyname="use_sql_comments">true</property>

<!一指定持久化類映射文件一〉

<mappingresource="com/BranchForm.hbm.xml7>

</session-factory>

</hibernate-configuration>

在上面的代碼中,“”代表本地SQLServer服務(wù)器,如果想連接

其他服務(wù)器可以修改為要連接的SQLServer服務(wù)器的IP地址,也可以是服務(wù)器

名(如wgh);“db_database02”為要連接的數(shù)據(jù)庫名稱;“sa”為連接SQL

Server服務(wù)器的登錄用戶;"(propertyname=,,connection.password"*/prop

erty>”表示連接SQLServer服務(wù)器的登錄密碼為空,如果不為空,只需在“>”

和之間加入密碼即可;“BranchForm.hbm.xml”為持久化類對應(yīng)的映射文

件名稱。

2.Java屬性文件格式的配置文件

下面將給出連接本地SQLServer服務(wù)器上的dbdatabase02數(shù)據(jù)庫時Hibe

mate配置文件hibernate,properties的代碼。

例程2-2:光盤、mr\02\sl\02\perties

#指定連接數(shù)據(jù)庫使用的SQL方言#

hibernate.dialect=org.hibernate.dialect.SQLServerDialect

#指定連接數(shù)據(jù)庫的驅(qū)動程序#

hibernate.connection.driver_class=com.microsoft.jdbc.sqlserver.SQLServerDriver

#指定連接數(shù)據(jù)庫的URL#

hibernate.connection.url=jdbc:microsoft:sqlserver://:1433;databaseName=db_

database02

#指定連接數(shù)據(jù)庫的用戶名#

hibernate.connection.username=sa

#指定連接數(shù)據(jù)庫的密碼#

hibernate.connection.password=

#指定在執(zhí)行程序時,是否在控制臺上輸出SQL語句#

hibernate.show_sql=true

#-指定是否按照標準格式在控制臺上輸出SQL語句#

hibernate.format_sql=true

#指定是否在SQL語句中輸出便于調(diào)試的注釋信息#

hibernate.use_sql_comments=true

在上面的代碼中,“”代表本地SQLServer服務(wù)器,如果想連接

其他服務(wù)器可以修改為要連接的SQLServer服務(wù)器的IP地址,也可以是服務(wù)器

名(如wgh);“db_database02”為要連接的數(shù)據(jù)庫名稱;“sa”為連接SQL

Server服務(wù)器的登錄用戶;"hibernate,connection.password="表示連接SQ

LServer服務(wù)器的登錄密碼為空,如果不為空,只需在等號“="后面加上密碼

即可。

2.4.2連接MySQL數(shù)據(jù)庫的Hibernate配置文件

連接MySQL的Hibernate配置文件有兩種格式,一種是xml格式的,另一種

是Java屬性文件格式的。下面將分別給出這兩種格式的配置文件的代碼。

1.xml格式的配置文件

下面將給出連接本地MySQL服務(wù)器上的dbdatabase02數(shù)據(jù)庫時Hibernate

配置文件hibernate,cfg.xml的代碼。

例程2-3:光盤、mr\02\sl\03\hibernate.cfg.xml

<?xmlversion='1.0'encoding='UTF-8'?>

<(DOCTYPEhibernate-configuration

PUBLIC"7/Hibernate/HibernateConfigurationDTD//EN"

"/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<session-factory>

<propertyname="connection.driver_class"><!--指定連接數(shù)據(jù)庫用的驅(qū)動-->

com.mysql.jdbc.Driver

</property>

<propertyname="connection.uH"><!--指定連接數(shù)據(jù)庫的路徑-->

jdbc:mysql://localhost:3306/db_database02

</property>

<propertyname="connection.username"〉rootc/property><!--指定連接數(shù)據(jù)庫的H]

戶名一>

<propertyname="connection.password”>lll</property><!--指定連接數(shù)據(jù)庫的密碼

—>

<!一指定數(shù)據(jù)庫使用的SQL方言一〉

<propertyname="dialect">org.hibernate.dialect.MySQLDialect</property>

<!--指定一個Transaction實例工廠類-->

<propertyname="hibernate.transaction.factory_class">

org.hibernate.transaction.JDBCTransactionFactory

</property>

<!--當show_sql屬性為true時表示在程序運行時在控制臺輸出SQL語句,默認為false,

建議在調(diào)試程序時設(shè)為true,發(fā)布程序之前再改為false,因為輸出SQL語句會影響程序的運

行速度一〉

<propertyname="show_sql">true</property>

<!一指定是否按照標準格式在控制臺上輸出SQL語句一〉

<propertyname="format_sql">true</property>

<!一指定是否在SQL語句中輸出便于調(diào)試的注釋信息一>

<propertyname="use_sql_comments">true</property>

<mappingresource="

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論