網(wǎng)絡(luò)數(shù)據(jù)庫 課件 項(xiàng)目7-9 存儲過程和觸發(fā)器、數(shù)據(jù)安全與保護(hù)、JAVA與數(shù)據(jù)庫_第1頁
網(wǎng)絡(luò)數(shù)據(jù)庫 課件 項(xiàng)目7-9 存儲過程和觸發(fā)器、數(shù)據(jù)安全與保護(hù)、JAVA與數(shù)據(jù)庫_第2頁
網(wǎng)絡(luò)數(shù)據(jù)庫 課件 項(xiàng)目7-9 存儲過程和觸發(fā)器、數(shù)據(jù)安全與保護(hù)、JAVA與數(shù)據(jù)庫_第3頁
網(wǎng)絡(luò)數(shù)據(jù)庫 課件 項(xiàng)目7-9 存儲過程和觸發(fā)器、數(shù)據(jù)安全與保護(hù)、JAVA與數(shù)據(jù)庫_第4頁
網(wǎng)絡(luò)數(shù)據(jù)庫 課件 項(xiàng)目7-9 存儲過程和觸發(fā)器、數(shù)據(jù)安全與保護(hù)、JAVA與數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

項(xiàng)目七

存儲過程和觸發(fā)器任務(wù)1存儲過程任務(wù)2觸發(fā)器任務(wù)1存儲過程任務(wù)引入小林正在創(chuàng)建一個(gè)大型數(shù)據(jù)庫系統(tǒng),其中創(chuàng)建完成某一特定功能的存儲過程。那么,怎么創(chuàng)建存儲過程?怎么使用存儲過程?存儲過程有哪些參數(shù)呢?知識準(zhǔn)備存儲過程存儲在數(shù)據(jù)庫內(nèi),可由應(yīng)用程序通過一個(gè)調(diào)用執(zhí)行,而且允許用戶聲明變量、有條件執(zhí)行以及其他強(qiáng)大的編程功能。存儲過程可以使得數(shù)據(jù)庫的管理、顯示關(guān)于數(shù)據(jù)庫及其用戶信息的工作容易得多。存儲過程包含程序流、邏輯以及對數(shù)據(jù)庫的查詢。它們可以接受參數(shù)、輸出參數(shù)、返回單個(gè)或多個(gè)結(jié)果集以及返回值??梢猿鲇谌魏问褂肧QL語句的目的來使用存儲過程,它具有以下優(yōu)點(diǎn):可以在單個(gè)存儲過程中執(zhí)行一系列SQL語句。可以從自己的存儲過程內(nèi)引用其他存儲過程,這可以簡化一系列復(fù)雜語句。存儲過程在創(chuàng)建時(shí)即在服務(wù)器上進(jìn)行編譯,所以執(zhí)行起來比單個(gè)SQL語句快,且能減少網(wǎng)絡(luò)通信的負(fù)擔(dān)。一、創(chuàng)建存儲過程要使用存儲過程,首先要?jiǎng)?chuàng)建一個(gè)存儲過程。使用CREATEPROCEDURE語句創(chuàng)建存儲過程。其中,各參數(shù)含義如下:procedure_name:新存儲過程的名稱。number:是可選的整數(shù),用來對同名的過程分組,以便用一條DROPPROCEDURE語句將同組的過程一起除去。@parameter:過程中的參數(shù)。data_type:參數(shù)的數(shù)據(jù)類型。VARYING:指定作為輸出參數(shù)支持的結(jié)果集(由存儲過程動態(tài)構(gòu)造,內(nèi)容可以變化)。僅適用于游標(biāo)參數(shù)。Default:參數(shù)的默認(rèn)值。OUTPUT:表明參數(shù)是返回參數(shù)。{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}:RECOMPILE表明SQLServer不會緩存該過程的計(jì)劃,該過程將在運(yùn)行時(shí)重新編譯。ENCRYPTION表示SQLServer加密syscomments表中包含CREATEPROCEDURE語句文本的條目。FORREPLICATION:指定不能在訂閱服務(wù)器上執(zhí)行為復(fù)制創(chuàng)建的存儲過程。sql_statement:過程中要包含的任意數(shù)目和類型的SQL語句。二、執(zhí)行存儲過程執(zhí)行存儲過程使用EXECUTE語句其中,各參數(shù)含義如下:@return_status:是一個(gè)可選的整型變量,保存存儲過程的返回狀態(tài)。procedure_name:是調(diào)用的存儲過程的名稱。number:是可選的整數(shù),用于將相同名稱的過程進(jìn)行組合,使得它們可以用一句DROPPROCEDURE語句除去。該參數(shù)不能用于擴(kuò)展存儲過程。@procedure_name_var:是局部定義變量名,代表存儲過程名稱。@parameter:是過程參數(shù),在CREATEPROCEDURE語句中定義。value:是過程中參數(shù)的值。OUTPUT:指定存儲過程必須返回一個(gè)參數(shù)。DEFAULT:根據(jù)過程的定義,提供參數(shù)的默認(rèn)值。案例——?jiǎng)?chuàng)建存儲過程stud_grade,用于檢索所有學(xué)生的成績記錄案例——使用系統(tǒng)存儲過程查看EMIS數(shù)據(jù)庫和學(xué)生表的相關(guān)信息檢索所有學(xué)生的成績記錄

查看EMIS數(shù)據(jù)庫和學(xué)生表的相關(guān)信息三、存儲過程的參數(shù)在創(chuàng)建和使用存儲過程時(shí),其參數(shù)是非常重要的。下面詳細(xì)討論存儲過程的參數(shù)傳遞和返回。1.使用參數(shù)在調(diào)用存儲過程時(shí),有兩種傳遞參數(shù)的方法。2.使用默認(rèn)參數(shù)創(chuàng)建存儲過程時(shí),可以為參數(shù)提供一個(gè)默認(rèn)值,默認(rèn)值必須為常量或者NULL。3.使用返回參數(shù)在創(chuàng)建存儲過程時(shí),可以定義返回參數(shù)。案例——?jiǎng)?chuàng)建存儲過程average,返回兩個(gè)參數(shù)@st_name和@st_avg,分別代表了姓名和平均分。查詢學(xué)號為“17043120”的學(xué)生姓名和平均分4.存儲過程的返回值存儲過程在執(zhí)行后都會返回一個(gè)整型值。5.存儲過程的刪除不再需要存儲過程時(shí)可將其刪除。通過DROPPROCEDURE語句來完成。任務(wù)2觸發(fā)器任務(wù)引入小林想要保證數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)完整性,還想在多個(gè)表中添加、更新或刪除行時(shí),保留表之間所定義的關(guān)系,他咨詢師兄,師兄告訴他可以在程序中設(shè)置一個(gè)觸發(fā)器。那么,怎么創(chuàng)建觸發(fā)器?怎么使用觸發(fā)器呢?知識準(zhǔn)備觸發(fā)器在INSERT、UPDATE或DELETE語句對表或視圖進(jìn)行修改時(shí)會被自動執(zhí)行。觸發(fā)器可以查詢其他表,并可以包含復(fù)雜的SQL語句。一個(gè)表可以有多個(gè)觸發(fā)器。觸發(fā)器具有如下優(yōu)點(diǎn):觸發(fā)器可通過數(shù)據(jù)庫中的相關(guān)表實(shí)現(xiàn)級聯(lián)更改。但是,通過級聯(lián)引用完整性約束可以更有效地執(zhí)行這些更改。觸發(fā)器可以強(qiáng)制比用CHECK約束定義的約束更為復(fù)雜的約束。觸發(fā)器也可以評估數(shù)據(jù)修改前后的表狀態(tài),并根據(jù)其差異采取對策。一個(gè)表中的多個(gè)同類觸發(fā)器(INSERT、UPDATE或DELETE)允許采取多個(gè)不同的對策,以響應(yīng)同一個(gè)修改語句。確保數(shù)據(jù)規(guī)范化。一、創(chuàng)建觸發(fā)器1.使用SSM創(chuàng)建觸發(fā)器(1)在資源管理器相應(yīng)的數(shù)據(jù)庫中的表節(jié)點(diǎn)下選擇“觸發(fā)器”,右擊鼠標(biāo),在彈出的快捷菜單中選擇“新建觸發(fā)器”選項(xiàng),如圖所示。(2)打開對應(yīng)的窗口,在窗口中修改創(chuàng)建觸發(fā)器的模板代碼,如圖所示。2.使用T-SQL創(chuàng)建觸發(fā)器

快捷菜單

創(chuàng)建觸發(fā)器模板二、使用觸發(fā)器在SQLServer中,除了INSERT、UPDATE和DELETE3種觸發(fā)器外,還提供了INSTEADOFINSERT、INSTEADOFUPDATE和INSTEADOFDELETE觸發(fā)器。1.INSERT觸發(fā)器當(dāng)向表中插入記錄時(shí),INSERT觸發(fā)器被執(zhí)行。一般情況下,這種觸發(fā)器常用來檢查插入數(shù)據(jù)是否滿足要求。案例——?jiǎng)?chuàng)建一個(gè)觸發(fā)器,當(dāng)執(zhí)行INSERT操作時(shí),該觸發(fā)器被觸發(fā)(1)創(chuàng)建觸發(fā)器。(2)執(zhí)行INSERT操作。2.UPDATE觸發(fā)器當(dāng)向表中更新記錄時(shí),UPDATE觸發(fā)器被執(zhí)行。案例——?jiǎng)?chuàng)建一個(gè)觸發(fā)器,當(dāng)執(zhí)行UPDATE操作時(shí),該觸發(fā)器被觸發(fā)(1)創(chuàng)建觸發(fā)器。(2)執(zhí)行UPDATE操作。3.DELETE觸發(fā)器創(chuàng)建觸發(fā)器測試觸發(fā)器trigger1的執(zhí)行創(chuàng)建觸發(fā)器測試觸發(fā)器trigger2的執(zhí)行三、刪除觸發(fā)器除了在對象資源管理器中刪除觸發(fā)器外,也可以使用DROPTRIGGER語句來刪除觸發(fā)器。案例——?jiǎng)h除trigger1觸發(fā)器項(xiàng)目總結(jié)項(xiàng)目實(shí)戰(zhàn)實(shí)戰(zhàn)一創(chuàng)建名為PRO的存儲過程來查詢部門號為30的員工信息實(shí)戰(zhàn)二創(chuàng)建一個(gè)觸發(fā)器,更新7521號員工的工資為6000(1)創(chuàng)建觸發(fā)器。(2)觸發(fā)觸發(fā)器并更新數(shù)據(jù)。查詢部門號為30的員工信息更改工資項(xiàng)目八

數(shù)據(jù)安全與保護(hù)任務(wù)1賬號和角色任務(wù)2備份和還原數(shù)據(jù)庫任務(wù)3數(shù)據(jù)的導(dǎo)入和導(dǎo)出任務(wù)1賬號和角色任務(wù)引入小林經(jīng)過這一段時(shí)間的學(xué)習(xí),終于建成一個(gè)達(dá)到自己要求的數(shù)據(jù)庫系統(tǒng),為了防止別人訪問或修改數(shù)據(jù)庫,他創(chuàng)建了一個(gè)登陸賬號和用戶名。那么,怎么創(chuàng)建登陸賬號?怎么創(chuàng)建用戶名名,并將用戶名關(guān)聯(lián)到登陸賬號?知識準(zhǔn)備在SQLServer中,賬號有兩種,一種是登錄服務(wù)器的登錄賬號(loginname),另外一種是使用數(shù)據(jù)庫的用戶賬號(username)。登錄賬號只是讓用戶登錄到SQLServer中,登錄名本身并不能讓用戶訪問服務(wù)器中的數(shù)據(jù)庫。要訪問特定的數(shù)據(jù)庫,還必須具有用戶名。用戶名在特定的數(shù)據(jù)庫內(nèi)創(chuàng)建,并關(guān)聯(lián)一個(gè)登錄名(當(dāng)一個(gè)用戶創(chuàng)建時(shí),必須關(guān)聯(lián)一個(gè)登錄名)。用戶定義的信息存放在服務(wù)器上的每個(gè)數(shù)據(jù)庫的sysusers表中,用戶沒有密碼同它相關(guān)聯(lián)。通過授權(quán)給用戶來指定用戶可以訪問的數(shù)據(jù)庫對象的權(quán)限。一、服務(wù)器的登錄賬號在安裝SQLServer后,系統(tǒng)默認(rèn)創(chuàng)建登錄賬號。在對象資源管理器中。展開“安全性”→“登錄”節(jié)點(diǎn),即可看到系統(tǒng)創(chuàng)建的默認(rèn)登錄賬號,如圖所示。其中,默認(rèn)登錄賬號sa是超級管理員賬號,允許SQLServer的系統(tǒng)管理員登錄。系統(tǒng)默認(rèn)創(chuàng)建的登錄賬號案例——新建一個(gè)登錄賬號,使其能夠通過混合驗(yàn)證的方式訪問教育管理系統(tǒng)快捷菜單

“登錄名-新建”對話框“服務(wù)器角色”選項(xiàng)卡“用戶映射”選擇頁“狀態(tài)”選擇頁快捷菜單“服務(wù)器屬性”對話框“連接到服務(wù)器”對話框服務(wù)器二、數(shù)據(jù)庫的用戶如果用戶想訪問SQLServer,首先必須要有一個(gè)適當(dāng)?shù)牡卿涃~號和密碼來登錄到SQLServer,用戶登錄后,并不意味著就能自動訪問由SQLServer管理的數(shù)據(jù)庫中的數(shù)據(jù)了,他們還必須有一個(gè)適當(dāng)?shù)臄?shù)據(jù)庫用戶賬號,才能訪問SQLServer的數(shù)據(jù)。登錄賬號存儲在主數(shù)據(jù)庫的系統(tǒng)登錄表中,用戶賬號存儲在各個(gè)數(shù)據(jù)庫的系統(tǒng)用戶表中。如圖所示,有4個(gè)不同的登錄賬號有權(quán)登錄到SQLServer數(shù)據(jù)庫

SQLServer登錄賬號和數(shù)據(jù)庫用戶賬號

系統(tǒng)自動創(chuàng)建的用戶賬號案例——在數(shù)據(jù)庫中創(chuàng)建一個(gè)用戶賬號,并將其關(guān)聯(lián)到liuly登錄賬號中

快捷菜單

“選擇登錄名”對話框“查找對象”對話框新建用戶賬號三、角色角色是一個(gè)強(qiáng)大的工具,可以將用戶集中到一個(gè)單元中,然后對該單元應(yīng)用權(quán)限。對一個(gè)角色授予、拒絕或廢除的權(quán)限也適用于該角色的任何成員。可以建立一個(gè)角色來代表單位中一類工作人員所執(zhí)行的工作,然后給這個(gè)角色授予適當(dāng)?shù)臋?quán)限。當(dāng)工作人員開始工作時(shí),只需將他們添加為該角色成員,當(dāng)他們離開工作時(shí),將他們從該角色中刪除。而不必在每個(gè)人接受或離開工作時(shí),反復(fù)授予、拒絕和廢除其權(quán)限。權(quán)限在用戶成為角色成員時(shí)自動生效。和登錄賬號類似,用戶賬號也可以分成組,稱為數(shù)據(jù)庫角色(DatabaseRoles)。在SQLServer中,角色可分為兩種:數(shù)據(jù)庫角色:由數(shù)據(jù)庫成員所組成的組,此成員可以是用戶或者其他的數(shù)據(jù)庫角色。應(yīng)用程序角色:用來控制應(yīng)用程序存取數(shù)據(jù)庫的,本身并不包含任何成員。1.?dāng)?shù)據(jù)庫角色在數(shù)據(jù)庫創(chuàng)建時(shí),系統(tǒng)默認(rèn)創(chuàng)建10個(gè)固定的標(biāo)準(zhǔn)角色。展開school數(shù)據(jù)庫“安全性”節(jié)點(diǎn)中“角色”→“數(shù)據(jù)庫角色”,即可看到其中默認(rèn)的10個(gè)固定角色,如圖所示。

默認(rèn)的10個(gè)標(biāo)準(zhǔn)角色案例——為liuly分配數(shù)據(jù)庫讀寫權(quán)限

快捷菜單“數(shù)據(jù)庫角色屬性—db_datareader”對話框“選擇數(shù)據(jù)庫用戶或角色”對話框“查找對象”對話框案例——?jiǎng)?chuàng)建新角色2.應(yīng)用程序角色SQLServer中的安全系統(tǒng)在最低級別,即數(shù)據(jù)庫本身上實(shí)現(xiàn)。無論使用什么應(yīng)用程序與SQLServer通信,這都是控制用戶活動的最佳方法。快捷菜單

“數(shù)據(jù)庫角色-新建”對話框任務(wù)2備份和還原數(shù)據(jù)庫任務(wù)引入小林發(fā)現(xiàn)了創(chuàng)建的數(shù)據(jù)庫有的數(shù)據(jù)丟失了,急的小林直上火。這時(shí)他同學(xué)告訴他,最好經(jīng)常備份數(shù)據(jù)庫,這樣能減少丟失數(shù)據(jù)的危險(xiǎn)。那么,怎么備份數(shù)據(jù)庫呢?怎么將備份的數(shù)據(jù)庫進(jìn)行還原呢?知識準(zhǔn)備對于計(jì)算機(jī)用戶來說,對一些重要文件、資料定期進(jìn)行備份是一種良好的習(xí)慣。同樣,對于數(shù)據(jù)庫管理員和用戶,對數(shù)據(jù)庫備份與還原(或恢復(fù))依然是一項(xiàng)重要且不可缺少的工作。因?yàn)樵谝粋€(gè)復(fù)雜的大型數(shù)據(jù)庫中,造成數(shù)據(jù)丟失的原因有很多。用戶可能對數(shù)據(jù)庫進(jìn)行誤操作或者惡意操作、物理磁盤的數(shù)據(jù)沖突、外界突發(fā)事件的影響等等,這些都有可能造成數(shù)據(jù)損失甚至是系統(tǒng)崩潰。在這時(shí)候,就需要根據(jù)以前的數(shù)據(jù)庫備份采取符合需求的還原和重建工作。一、備份數(shù)據(jù)庫數(shù)據(jù)庫備份就是創(chuàng)建備份完成時(shí)數(shù)據(jù)庫內(nèi)存在的數(shù)據(jù)的副本。數(shù)據(jù)庫備份是一件相當(dāng)麻煩的工作,需要認(rèn)真進(jìn)行規(guī)劃。因?yàn)椴煌膫浞莶呗灾苯佑绊懙綌?shù)據(jù)庫的還原工作。例如,如果在備份數(shù)據(jù)庫的時(shí)候采取的策略是只備份數(shù)據(jù)庫而不備份事務(wù)日志,那么在出現(xiàn)意外情況后對數(shù)據(jù)庫進(jìn)行還原,就只能還原到上一次備份之前的程度,備份之后的信息全部丟失。所以要針對不同的情況全面考慮以采取最符合實(shí)際的備份策略。(一)數(shù)據(jù)庫備份1.使用SSMS創(chuàng)建數(shù)據(jù)庫備份

快捷菜單“SQLServer備份”對話框的“常規(guī)”選項(xiàng)卡“選擇備份目的”對話框“介質(zhì)選項(xiàng)”選項(xiàng)卡“備份選項(xiàng)”選項(xiàng)卡

提示對話框2.使用T-SQL命令備份數(shù)據(jù)庫(二)數(shù)據(jù)庫事務(wù)日志備份事務(wù)日志是自上次備份事務(wù)日志后對數(shù)據(jù)庫執(zhí)行的所有事務(wù)的一系列記錄??梢允褂檬聞?wù)日志備份將數(shù)據(jù)庫還原到特定的即時(shí)點(diǎn)(如輸入多余數(shù)據(jù)前的那一點(diǎn))或還原到故障點(diǎn)。一般情況下,事務(wù)日志備份比數(shù)據(jù)庫備份使用的資源少。因此可以比數(shù)據(jù)庫備份更經(jīng)常地創(chuàng)建事務(wù)日志備份。經(jīng)常備份將減少丟失數(shù)據(jù)的危險(xiǎn)。事務(wù)日志備份有時(shí)比數(shù)據(jù)庫備份大。例如,數(shù)據(jù)庫的事務(wù)率很高,從而導(dǎo)致事務(wù)日志迅速增大。在這種情況下,應(yīng)更經(jīng)常地創(chuàng)建事務(wù)日志備份。數(shù)據(jù)庫事務(wù)日志備份的創(chuàng)建步驟和數(shù)據(jù)庫備份的創(chuàng)建方法是一樣的,只需要在“備份數(shù)據(jù)庫”對話框的“備份類型”下拉列表中選擇“事務(wù)日志”即可,這里就不在詳細(xì)講述了。二、數(shù)據(jù)庫還原數(shù)據(jù)庫還原也稱為數(shù)據(jù)庫恢復(fù)。(一)還原數(shù)據(jù)庫備份1.使用SSMS還原數(shù)據(jù)庫備份“刪除對象”對話框快捷菜單“選擇備份設(shè)備”對話框“定位備份文件”對話框

“還原數(shù)據(jù)庫”對話框提示對話框

還原EMIS數(shù)據(jù)庫2.使用T-SQL命令還原數(shù)據(jù)庫備份(二)還原事務(wù)日志備份還原事務(wù)日志備份除以下參數(shù)說明外,其他參數(shù)與RESTOREDATABASE語句的相同:STOPAT=date_time|@date_time_var:指定將數(shù)據(jù)庫還原到其在指定的日期和時(shí)間時(shí)的狀態(tài)。如果對STOPAT使用變量,則該變量必須是varchar、char、smalldatetime或datetime數(shù)據(jù)類型。只有在指定的日期和時(shí)間前寫入的事務(wù)日志記錄才能應(yīng)用于數(shù)據(jù)庫。STOPATMARK='mark_name'[AFTERdatetime]:指定還原到指定的標(biāo)記,包括包含該標(biāo)記的事務(wù)。STOPBEFOREMARK='mark_name'[AFTERdatetime]:指定還原到指定的標(biāo)記,但不包括包含該標(biāo)記的事務(wù)。任務(wù)3數(shù)據(jù)的導(dǎo)入和導(dǎo)出任務(wù)引入小林想在SQLServer數(shù)據(jù)庫服務(wù)器與其它數(shù)據(jù)庫服務(wù)器間移動數(shù)據(jù),怎么才能將數(shù)據(jù)移動到其他數(shù)據(jù)服務(wù)器中呢?小林就這問題咨詢老師,老師告訴他可以將SQLServer數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)導(dǎo)出,或者將其他數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)導(dǎo)入到SQLServer數(shù)據(jù)庫服務(wù)器來實(shí)現(xiàn)。那么,怎么將數(shù)據(jù)導(dǎo)出呢?怎么將數(shù)據(jù)導(dǎo)入呢?知識準(zhǔn)備導(dǎo)入和導(dǎo)出數(shù)據(jù)是在不同應(yīng)用之間按普通格式讀寫數(shù)據(jù)從而實(shí)現(xiàn)數(shù)據(jù)交換的過程。一、數(shù)據(jù)的導(dǎo)出“SQLServer導(dǎo)入和導(dǎo)出向?qū)А睂υ捒颉斑x擇數(shù)據(jù)源”頁面

“選擇目標(biāo)”頁面“指定表復(fù)制或查詢”頁面

“選擇源表和源視圖”頁面“列映射”對話框“查看數(shù)據(jù)類型映射”頁面“查看數(shù)據(jù)類型映射”頁面“執(zhí)行已完成”頁面導(dǎo)出的數(shù)據(jù)二、數(shù)據(jù)的導(dǎo)入“選擇數(shù)據(jù)源”頁面“選擇目標(biāo)”頁面

“選擇源表和源視圖”頁面“完成向?qū)А表撁妗皥?zhí)行成功”頁面

導(dǎo)入的表項(xiàng)目總結(jié)項(xiàng)目實(shí)戰(zhàn)實(shí)戰(zhàn)一創(chuàng)建一個(gè)登錄賬號ABC/123456(1)在對象資源管理器中選擇“登錄名”節(jié)點(diǎn),右擊鼠標(biāo),在彈出的快捷菜單選擇“新建登錄”選項(xiàng),打開“登錄名-新建”對話框。(2)輸入登錄名為“ABC”,選擇“SQLServer身份驗(yàn)證”單選按鈕,輸入密碼為123456。然后在“默認(rèn)數(shù)據(jù)庫”列表框中選擇“company”數(shù)據(jù)庫。(3)在“服務(wù)器角色”選擇頁中,選擇“securityadmin”服務(wù)器角色。(4)在“用戶映射”選擇頁中勾選“company”數(shù)據(jù)庫復(fù)選框。(5)設(shè)置完成后,單擊“確定”按鈕,創(chuàng)建一個(gè)名稱為ABC的登錄賬號。實(shí)戰(zhàn)二在company數(shù)據(jù)庫中創(chuàng)建一個(gè)用戶賬號,并將其關(guān)聯(lián)到ABC登錄賬號中(1)在對象資源管理器中,展開“數(shù)據(jù)庫”→company節(jié)點(diǎn),選擇“用戶”節(jié)點(diǎn),右擊鼠標(biāo),在彈出的快捷菜單中選擇“新建用戶”命令,打開“數(shù)據(jù)庫用戶-新建”對話框。(2)在“用戶名”和“登錄名”中輸入ABC。(3)設(shè)置完成后,單擊“確定”按鈕,即可在ABC數(shù)據(jù)庫中創(chuàng)建一個(gè)新的用戶賬號。項(xiàng)目九

JAVA與數(shù)據(jù)庫任務(wù)1概述任務(wù)2利用JDBC訪問數(shù)據(jù)庫任務(wù)3利用Hibernate訪問數(shù)據(jù)庫任務(wù)4利用JAVA創(chuàng)建圖形界面任務(wù)1概述任務(wù)導(dǎo)入小林已經(jīng)在SQLServer創(chuàng)建好了數(shù)據(jù)庫,并學(xué)會在SQLServer查詢所需數(shù)據(jù),現(xiàn)在他想通過JAVA來訪問數(shù)據(jù)庫。那么,可以使用哪些方法來通過JAVA訪問數(shù)據(jù)庫呢?在使用JAVA訪問數(shù)據(jù)庫之前的先安裝Java開發(fā)包。那么,怎么安裝JAVA的開發(fā)包JDK呢?知識準(zhǔn)備一、JAVA訪問數(shù)據(jù)庫的方法JAVA可以訪問的數(shù)據(jù)庫類型有許多種,以上主流的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)都支持。JAVA訪問數(shù)據(jù)庫的方法有如下幾類:1.使用JDBC(JavaDataBaseConnection,Java數(shù)據(jù)庫連接)方式JDBC是Java應(yīng)用訪問關(guān)系型數(shù)據(jù)庫的接口規(guī)范。2.使用MyBatis框架方式Mybatis是開源的持久層框架,能夠?qū)DBC進(jìn)行簡單的封裝,但其并不是完全的ORM(ObjectRelationalMapping,對象關(guān)系映射),無法脫離數(shù)據(jù)庫進(jìn)行適配。3.使用ORM框架方式ORM是內(nèi)存中的對象和關(guān)系型數(shù)據(jù)庫中的記錄之間的映射關(guān)系,實(shí)現(xiàn)了JPA(JavaPersistenceAPI)規(guī)范,Sun引入新的JPAORM規(guī)范出于兩個(gè)原因:其一,簡化現(xiàn)有JavaEE和JavaSE應(yīng)用開發(fā)工作;其二,Sun希望整合ORM技術(shù),形成統(tǒng)一的標(biāo)準(zhǔn)化的規(guī)范。二、JDK的安裝JDK的全稱為JavaDevelopmentKit,即Java開發(fā)包,這是用Java訪問數(shù)據(jù)庫的必裝軟件工具包,對于JDBC和JPA本來就是JDK的一部分,ORM方式的使用也會依賴于JDK,下文以JDK17.0.2(64位)在Windows1064位的安裝為例進(jìn)行講解。ORM框架流行度排名圖(1)登錄Oracle公司官網(wǎng),下載JavaSE的最新穩(wěn)定版。(2)下載完成后,雙擊下載的文件啟動安裝向?qū)В鐖D所示。(3)單擊“下一步(Next)”按鈕,選擇安裝JavaSE的目標(biāo)文件夾,如圖所示。(4)單擊“下一步(Next)”按鈕,開始安裝程序,并顯示進(jìn)度條。(5)如果不需要訪問JDK的官方文檔,單擊安裝向?qū)е械摹瓣P(guān)閉(Close)”按鈕,即可完成安裝。

安裝向?qū)?/p>

指定目標(biāo)文件夾(6)在任務(wù)欄單擊“顯示桌面”菜單項(xiàng),這種可看到桌面,此時(shí)按住“Shift”鍵不松開,單擊鼠標(biāo)右鍵,出現(xiàn)如圖所示的菜單,然后選擇“在此處打開PowerShell窗口”菜單項(xiàng)完成安裝菜單查看安裝的JDK版本任務(wù)2利用JDBC訪問數(shù)據(jù)庫任務(wù)導(dǎo)入小林已經(jīng)安裝好了JAVA的開發(fā)包JDK,他想利用JDBC訪問在SQLServer中創(chuàng)建的教學(xué)管理系統(tǒng)數(shù)據(jù)庫,并對學(xué)院表中的數(shù)據(jù)進(jìn)行修改和查詢。那么,怎么下載安裝JDBC呢?怎么利用JDBC訪問數(shù)據(jù)庫呢?知識準(zhǔn)備在利用JDBC訪問SQLServer數(shù)據(jù)庫之前得先安裝JDBC,下面介紹JDBC驅(qū)動包的下載和配置。(1)JavaJDBCforSQLServer驅(qū)動包的下載(2)以JavaJDBCforSQLServer驅(qū)動包配置構(gòu)建路徑(ConfigureBuildPath)以下2種辦法根據(jù)項(xiàng)目類型選擇其中一種即可。方法一:針對普通的JavaProject采取手工配置構(gòu)建路徑的辦法方法二:針對MavenProject,采用自動配置構(gòu)建路徑的辦法。添加用戶庫的菜單入口“新建用戶庫”對話框選擇JAR包對話框添加SQLServerJDBC依賴來自動配置

選擇Maven項(xiàng)目選擇簡單的項(xiàng)目配置Maven項(xiàng)目案例——訪問EMIS數(shù)據(jù)庫中學(xué)院表通過Java控制臺程序來查詢EMIS數(shù)據(jù)庫中的所有學(xué)院,并完成增加、修改和刪除學(xué)院的功能。

運(yùn)行結(jié)果任務(wù)3利用Hibernate訪問數(shù)據(jù)庫任務(wù)導(dǎo)入小林通過上一個(gè)任務(wù)的學(xué)習(xí)已經(jīng)掌握了利用JDBC訪問數(shù)據(jù)庫的方法,他還想利用Hibernate訪問在SQLServer中創(chuàng)建的教學(xué)管理系統(tǒng)數(shù)據(jù)庫,并對課程表中的數(shù)據(jù)進(jìn)行修改和查詢。那么,怎么下載安裝Hibernate框架呢?怎么利用Hibernate訪問數(shù)據(jù)庫呢?知識準(zhǔn)備在利用Hibernate訪問SQLServer數(shù)據(jù)庫之前得先安裝Hibernate框架,下面介紹Hibernate框架的下載和配置。

添加用戶庫的菜單入口“添加庫(AddLibrary)”對話框

新建用戶庫對話框

添加外部JAR包Hibernate庫配置完成后的界面搜索和安裝過程確認(rèn)HibernateTools功能點(diǎn)選中的對話框

安裝條款同意對話框非簽名軟件的的確認(rèn)框Eclipse重啟的確認(rèn)框Hibernate配置是否成功的驗(yàn)證框案例——訪問EMIS數(shù)據(jù)庫中課程表通過Java控制臺程序來查詢EMIS數(shù)據(jù)庫中的所有課程,并完成增加、修改和刪除課程的功能。選擇Hibernate配置文件(cfg.xml)向?qū)Ц肝募A選擇對話框Hibernate配置文件的數(shù)據(jù)庫連接配置Hibernate配置文件的Hibernate屬性配置添加類新建類Course的基本信息類Course的基本屬性和方法類Course的getter/setter方法setter和getter方法自動生成的觸發(fā)菜單創(chuàng)建setter和getter方法圖9-36CourseDemo的基本信息

課程表操作的運(yùn)行結(jié)果

編輯映射項(xiàng)配置瀏覽選擇eduMIS2/Course.hbm.xml文件完成編輯后的效果圖

新建HibernateXML映射文件建立類名Course和Course.hbm.xml文件的映射關(guān)系CourseDemo.java的運(yùn)行結(jié)果任務(wù)4利用JAVA創(chuàng)建圖形界面任務(wù)導(dǎo)入小林通覺得不管是利用JDBC訪問數(shù)據(jù)庫他還是利用Hibernate訪問數(shù)據(jù)庫都比較麻煩,他想在JAVA的界

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論