


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
JDBC1.2中幾個(gè)最重要的接口和類1、DriverManager類是JDBC的管理層,作用于用戶和驅(qū)動(dòng)程序之間。它跟蹤可用的驅(qū)動(dòng)程序,并在數(shù)據(jù)庫(kù)和相應(yīng)驅(qū)動(dòng)程序之間建立連接。另外,DriverManager類也處理諸如驅(qū)動(dòng)程序登錄時(shí)間限制及登錄和跟蹤消息的顯示等事務(wù)。對(duì)于簡(jiǎn)單的應(yīng)用程序,一般程序員需要在此類中直接使用的唯一方法是DriverManager.getConnection()。正如名稱所示,該方法將建立與數(shù)據(jù)庫(kù)的連接。2、 Connection:次類代表與數(shù)據(jù)庫(kù)的連接。連接過(guò)程包括所執(zhí)行的SQL語(yǔ)句和在該連接上所返回的結(jié)果。一個(gè)應(yīng)用程序可與單個(gè)數(shù)據(jù)庫(kù)有一個(gè)或多個(gè)連接,或者可與許多數(shù)據(jù)庫(kù)有連接。3、 Statement對(duì)象用于將SQL語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)中。實(shí)際上有三種Statement對(duì)象,它們都作為在給定連接上執(zhí)行SQL語(yǔ)句的包容器:Statement、PreparedStatement(從Statement繼承而來(lái))和CallableStatement(從PreparedStatement繼承而來(lái))。它們都專用于發(fā)送特定類型的SQL語(yǔ)句:Statement對(duì)象用于執(zhí)行不帶參數(shù)的簡(jiǎn)單SQL語(yǔ)句;PreparedStatement對(duì)象用于執(zhí)行帶或不帶IN參數(shù)的預(yù)編譯SQL語(yǔ)句;CallableStatement對(duì)象用于執(zhí)行對(duì)數(shù)據(jù)庫(kù)已存儲(chǔ)過(guò)程的調(diào)用。Statement接口提供了執(zhí)行語(yǔ)句和獲取結(jié)果的基本方法。PreparedStatement接口添加了處理IN參數(shù)的方法;而CallableStatement添加了處理OUT參數(shù)的方法。4、 ResultSet包含符合SQL語(yǔ)句中條件的所有行,并且它通過(guò)一套get方法(這些get方法可以訪問(wèn)當(dāng)前行中的不同列)提供了對(duì)這些行中數(shù)據(jù)的訪問(wèn)。ResultSet.next方法用于移動(dòng)到ResultSet中的下一行,使下一行成為當(dāng)前行。JDBC1.0的規(guī)范只提供光標(biāo)在ResultSet的向后移動(dòng),只有next()方法,而沒(méi)有previous。方法。在JDBC2.0中,增加了previous()方法。結(jié)果集一般是一個(gè)表,其中有查詢所返回的列標(biāo)題及相應(yīng)的值。例如,如果查詢?yōu)镾ELECTa,b,cFROMTable1,則結(jié)果集將具有如下形式:cab12345北京CA83472上海WA83492重慶MA下面的代碼段是執(zhí)行SQL語(yǔ)句的示例。該SQL語(yǔ)句將返回行集合,其中列1為int,列2為String,而列3則為字節(jié)數(shù)組br>java.sql.Statementstmt=conn.createStatement();java.sql.ResultSetrs=stmt.executeQuery("SELECTa,b,cFROMTable1");while(r.next()){//打印當(dāng)前行的值。inti=r.getInt("a");Strings=r.getString("b");floatf=r.getFloat("c");System.out.println("ROW="+i+""+s+""+f);}CotifMctioi]CctitiectictiScitomtttitCotmactiotiResultseiRssulEsetStfitcnictitSCiitemctKCotifMctioi]CctitiectictiScitomtttitCotmactiotiResultseiRssulEsetStfitcnictitSCiitemctK我們目前所知曉的JDBC驅(qū)動(dòng)程序可分為以下四個(gè)種類:1、JDBC-ODBC橋加ODBC驅(qū)動(dòng)程序:JavaSoft橋產(chǎn)品利用ODBC驅(qū)動(dòng)程序提供JDBC訪問(wèn)。注意,必須將ODBC二進(jìn)制代碼(許多情況下還包括數(shù)據(jù)庫(kù)客戶機(jī)代碼)加載到使用該驅(qū)動(dòng)程序的每個(gè)客戶機(jī)上。這種類型的驅(qū)動(dòng)程序最適合于企業(yè)網(wǎng)(這種網(wǎng)絡(luò)上客戶機(jī)的安裝不是主要問(wèn)題),或者是用Java編寫(xiě)的三層結(jié)構(gòu)的應(yīng)用程序服5、務(wù)器代碼。2、 本地API-部份用Java來(lái)編寫(xiě)的驅(qū)動(dòng)程序:這種類型的驅(qū)動(dòng)程序把客戶機(jī)API上的JDBC調(diào)用轉(zhuǎn)換為Oracle、Sybase、Informix、DB2或其它DBMS的調(diào)用。注意,象橋驅(qū)動(dòng)程序一樣,這種類型的驅(qū)動(dòng)程序要求將某些二進(jìn)制代碼加載到每臺(tái)客戶機(jī)上。3、JDBC網(wǎng)絡(luò)純Java驅(qū)動(dòng)程序:這種驅(qū)動(dòng)程序?qū)DBC轉(zhuǎn)換為與DBMS無(wú)關(guān)的網(wǎng)絡(luò)協(xié)議,這種協(xié)議又被某個(gè)服務(wù)器轉(zhuǎn)換為一種DBMS協(xié)議。這種網(wǎng)絡(luò)服務(wù)器中間件能夠?qū)⑺募僇ava客戶機(jī)連接到多種不同的數(shù)據(jù)庫(kù)上。所用的具體協(xié)議取決于提供者。通常,這是最為靈活的JDBC驅(qū)動(dòng)程序。有可能所有這種解決方案的提供者都提供適合于Intranet用的產(chǎn)品。為了使這些產(chǎn)品也支持Internet訪問(wèn),它們必須處理Web所提出的安全性、通過(guò)防火墻的訪問(wèn)等方面的額外要求。幾家提供者正將JDBC驅(qū)動(dòng)程序加到他們現(xiàn)有的數(shù)據(jù)庫(kù)中間件產(chǎn)品中。4、 本地協(xié)議純Java驅(qū)動(dòng)程序:這種類型的驅(qū)動(dòng)程序?qū)DBC調(diào)用直接轉(zhuǎn)換為DBMS所使用的網(wǎng)絡(luò)協(xié)議。這將允許從客戶機(jī)機(jī)器上直接調(diào)用DBMS服務(wù)器,是Intranet訪問(wèn)的一個(gè)很實(shí)用的解決方法。由于許多這樣的協(xié)議都是專用的,因此數(shù)據(jù)庫(kù)提供者自己將是主要來(lái)源,有幾家提供者已在著手做這件事了。第3、4類驅(qū)動(dòng)程序?qū)⒊蔀閺腏DBC訪問(wèn)數(shù)據(jù)庫(kù)的首選方法。第1、2類驅(qū)動(dòng)程序在直接的純Java驅(qū)動(dòng)程序還沒(méi)有上市前將會(huì)作為過(guò)渡方案來(lái)使用。對(duì)第1、2類驅(qū)動(dòng)程序可能會(huì)有一些變種(下表中未列出),這些變種要求有連接器,但通常這些是更加不可取的解決方案。第3、4類驅(qū)動(dòng)程序提供了Java的所有優(yōu)點(diǎn),包括自動(dòng)安裝(例如,通過(guò)使用JDBC驅(qū)動(dòng)程序的appletapplet來(lái)下載該驅(qū)動(dòng)程序)。什么是事務(wù)的ACID特性就是原子特性,不可再分,一個(gè)事務(wù)內(nèi)的語(yǔ)句只要有一條出錯(cuò)就都恢復(fù)到?jīng)]執(zhí)行時(shí)的狀態(tài)(回滾)。就是一個(gè)事務(wù)要么所有語(yǔ)句都執(zhí)行,要出錯(cuò)就等于一個(gè)都沒(méi)執(zhí)行數(shù)據(jù)庫(kù)系統(tǒng)必須維護(hù)事務(wù)的以下特性:原子性(Atomicity),—致性(Consistency),隔離性(Isolation),持久性(Durability).這些特性簡(jiǎn)稱ACID。事務(wù)的標(biāo)準(zhǔn)定義:指作為單個(gè)邏輯工作單元執(zhí)行的一系列操作,而這些邏輯工作單元需要具有原子性,一致性,隔離性和持久性四個(gè)屬性,統(tǒng)稱為ACID特性。事務(wù)(Transaction)是并發(fā)控制的單位,是用戶定義的一個(gè)操作序列。這些操作要么都做,要么都不做,是一個(gè)不可分割的工作單位。通過(guò)事務(wù),SQLServer能將邏輯相關(guān)的一組操作綁定在一起,以便服務(wù)器保持?jǐn)?shù)據(jù)的完整性。:事務(wù)通常是以BEGINTRANSACTION開(kāi)始,以COMMIT或ROLLBACK結(jié)束。COMMIT表示提交,即提交事務(wù)的所有操作。具體地說(shuō)就是將事務(wù)中所有對(duì)數(shù)據(jù)庫(kù)的更新寫(xiě)回到磁盤(pán)上的物理數(shù)據(jù)庫(kù)中去,事務(wù)正常結(jié)束。ROLLBACK表示回滾,即在事務(wù)運(yùn)行的過(guò)程中發(fā)生了某種故障,事務(wù)不能繼續(xù)進(jìn)行,系統(tǒng)將事務(wù)中對(duì)數(shù)據(jù)庫(kù)的所有以完成的操作全部撤消,滾回到事務(wù)開(kāi)始的狀態(tài)。:事務(wù)運(yùn)行的三種模式:A:自動(dòng)提交事務(wù)每條單獨(dú)的語(yǔ)句都是一個(gè)事務(wù)。每個(gè)語(yǔ)句后都隱含一個(gè)COMMIT。B:顯式事務(wù)以BEGINTRANSACTION顯式開(kāi)始,以COMMIT或ROLLBACK顯式結(jié)束。C:隱性事務(wù)在前一個(gè)事務(wù)完成時(shí),新事務(wù)隱式啟動(dòng),但每個(gè)事務(wù)仍以COMMIT或ROLLBACK顯式結(jié)束。⑷:事務(wù)的特性(ACID特性)A:原子性(Atomicity)事務(wù)是數(shù)據(jù)庫(kù)的邏輯工作單位,事務(wù)中包括的諸操作要么全做,要么全不做。B:一致性(Consistency)事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。一致性與原子性是密切相關(guān)的。C:隔離性(Isolation)一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。D:持續(xù)性/永久性(Durability)一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就應(yīng)該是永久性的。注:事務(wù)是恢復(fù)和并發(fā)控制的基本單位。((1)是回答事務(wù)的概念到底是什么——即你的提問(wèn),至于(2)、(3)、(4)只是作的稍許補(bǔ)充而已,不必深究,呵呵……)進(jìn)程死鎖死鎖定義:一組進(jìn)程中,任何一個(gè)進(jìn)程都由于在等待該組其他進(jìn)程占用的某些資源并且永遠(yuǎn)無(wú)法得到,這種現(xiàn)象被稱為進(jìn)程死鎖,這組進(jìn)程被稱為死鎖進(jìn)程。關(guān)于死鎖的一些結(jié)論:a.參與死鎖的進(jìn)程必須要>=兩個(gè)b.至少要有兩個(gè)進(jìn)程占有了資源c.參與死鎖的所有進(jìn)程都在等待資源產(chǎn)生死鎖的四個(gè)基本條件:a.循環(huán)等待b.不可剝奪c.互斥使用d.請(qǐng)求和保持多線程之避免死鎖2008-10-0711:08概念:死鎖是指永久阻塞一組爭(zhēng)用一組資源的線程。導(dǎo)致死鎖的最常見(jiàn)情況是自死鎖或遞歸死鎖。在自死鎖或遞歸死鎖中,線程嘗試獲取已被其持有的鎖。遞歸死鎖是在編程時(shí)很容易犯的錯(cuò)誤。另一種死鎖的情況就是多個(gè)線程分別獲取一部分資源,并且等待循環(huán)等待其他線程已經(jīng)獲取的資源。避免死鎖有一般的銀行家算法,該算法假設(shè)每個(gè)客戶有可能在沒(méi)有得到最大資源的情況下也能工作。銀行家算法對(duì)每一個(gè)請(qǐng)求進(jìn)行檢查,如果它會(huì)導(dǎo)致不安全狀態(tài),則不滿足該請(qǐng)求,否則便滿足。檢查狀態(tài)是否安全是看是否有足夠的資源滿足距最大需求最近的客戶。對(duì)于每個(gè)線程都需要得到最大資源才能工作的情況下,避免死鎖有如下的一般編程實(shí)踐:請(qǐng)勿嘗試在可能會(huì)對(duì)性能造成不良影響的長(zhǎng)時(shí)間操作(如I/O
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于蛋白質(zhì)組學(xué)研究疏肝通竅法對(duì)肝郁證青光眼大鼠視網(wǎng)膜神經(jīng)節(jié)細(xì)胞的作用機(jī)制
- 地方文化題材微紀(jì)錄片的網(wǎng)感化敘事研究-兼談畢業(yè)作品《守藝廬州》
- 我愛(ài)爸爸媽媽心理健康
- 痛經(jīng)防治與健康管理講座
- CRRT健康教育比賽
- 干細(xì)胞治療腫瘤的臨床應(yīng)用與研究進(jìn)展
- 百草枯中毒的病例討論
- 頸椎健康科普課件
- 餐飲促銷(xiāo)主題活動(dòng)策劃方案
- 顱腦外傷護(hù)理課件
- 變電站電氣安裝合同
- 危險(xiǎn)廢物培訓(xùn)知識(shí)課件
- 電儀檢修面試試題及答案
- 記憶力提升圖書(shū)出版行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2024年江蘇省中考語(yǔ)文文言文專項(xiàng)練習(xí)
- 沈陽(yáng)地鐵筆試試題及答案
- 雙減政策中的課程改革探索心得體會(huì)
- 餐飲服務(wù)企業(yè)各項(xiàng)管理制度體系
- 2024-2025學(xué)年人教版英語(yǔ)七年級(jí)下冊(cè)Unit 5 Here and now Section A 2a - 2e 教案
- 二零二五年度柑橘產(chǎn)業(yè)鏈全程托管銷(xiāo)售合同3篇
- 《國(guó)防動(dòng)員實(shí)施》課件
評(píng)論
0/150
提交評(píng)論