版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java程序設(shè)計(jì)JDBC中常用的類與接口JDBC中常用的類與接口Java語言為了更方便地進(jìn)行數(shù)據(jù)訪問和處理,為用戶提供了豐富的類和接口用于數(shù)據(jù)庫編程,這些類或接口都在java.sql包中。在java.sql包中的類和接口主要針對(duì)基本的數(shù)據(jù)庫編程服務(wù),如生成連接、執(zhí)行語句以及準(zhǔn)備語句和運(yùn)行批處理查詢等。同時(shí)也有一些高級(jí)處理,如批處理更新、事務(wù)隔離和滾動(dòng)結(jié)果集等。JDBC中常用的類與接口JDBC中常用的類與接口主要如下表中所示:接口說明DriverManager類負(fù)責(zé)加載各種不同驅(qū)動(dòng)程序(Driver),并根據(jù)不同的請(qǐng)求,向調(diào)用者返回相應(yīng)的數(shù)據(jù)庫連接(Connection)Driver驅(qū)動(dòng)程序,會(huì)將自身加載到DriverManager中去,并處理相應(yīng)的請(qǐng)求并返回相應(yīng)的數(shù)據(jù)庫連接(Connection)Connection數(shù)據(jù)庫連接,負(fù)責(zé)進(jìn)行數(shù)據(jù)庫間的通信,SQL執(zhí)行及事務(wù)處理都在某個(gè)特定Connection環(huán)境中進(jìn)行。可以產(chǎn)生用于執(zhí)行SQL的StatementStatement用于執(zhí)行SQL查詢和更新(針對(duì)靜態(tài)SQL語句和單次執(zhí)行)PreparedStatement用于執(zhí)行包含動(dòng)態(tài)參數(shù)的SQL查詢和更新(在服務(wù)器端編譯,允許重復(fù)執(zhí)行以提高效率)CallableStatement用于調(diào)用數(shù)據(jù)庫中的存儲(chǔ)過程ResultSet表示數(shù)據(jù)庫結(jié)果集的數(shù)據(jù)表,通常通過執(zhí)行查詢數(shù)據(jù)庫的語句生成ResultSetMetaData可用于獲取關(guān)于ResultSet對(duì)象中列的類型和屬性信息的對(duì)象1.Connection接口:Connection接口與特定數(shù)據(jù)庫的連接(會(huì)話)過程包括所執(zhí)行的SQL語句和在該連接上所返回的結(jié)果。Connection對(duì)象的數(shù)據(jù)庫能夠提供描述其表所支持的SQL語法、存儲(chǔ)過程、連接功能等信息。2.Statement接口:Statement接口用于執(zhí)行靜態(tài)SQL語句,并返回它所生成結(jié)果的對(duì)象。在默認(rèn)情況下,同一時(shí)間每個(gè)Statement對(duì)象只能打開一個(gè)ResultSet對(duì)象。因此,如果讀取一個(gè)ResultSet對(duì)象與讀取另一個(gè)交叉,則這兩個(gè)對(duì)象必須是由不同的Statement對(duì)象生成的。如果存在某個(gè)語句打開當(dāng)前ResultSet對(duì)象,則Statement接口中的所有執(zhí)行方法都會(huì)隱式關(guān)閉它。JDBC中常用的類與接口Statement對(duì)象用Connection的方法createStatement創(chuàng)建,代碼如下:Stringurl="jdbc:mysql://localhost:3306/mydb";//創(chuàng)建一個(gè)Connection對(duì)象con進(jìn)行數(shù)據(jù)庫連接,用戶為:root,密碼為:123456Connectioncon=DriverManager.getConnection(url,"root","123456");//創(chuàng)建一個(gè)Statement對(duì)象stmtStatementstmt=con.createStatement();首先是創(chuàng)建url字符串并賦值為本機(jī)mydb數(shù)據(jù)庫,然后創(chuàng)建一個(gè)Connection對(duì)象con進(jìn)行數(shù)據(jù)庫連接。用戶為“root”,密碼為“123456”,創(chuàng)建一個(gè)Statement對(duì)象stmt。JDBC中常用的類與接口JDBC中常用的類與接口為了執(zhí)行Statement對(duì)象,被發(fā)送到數(shù)據(jù)庫的SQL語句將被作為參數(shù)提供給Statement的方法。代碼如下:Stringsql="select*fromt_cust";ResultSetrs=stmt.executeQuery(sql);Statement對(duì)象將由Java垃圾收集程序自動(dòng)關(guān)閉。而作為一種好的編程風(fēng)格,應(yīng)在不需要Statement對(duì)象時(shí)顯式地關(guān)閉它們。這將立即釋放DBMS資源,有助于避免潛在的內(nèi)存問題。3.PreparedStatement接口:PreparedStatement接口表示預(yù)編譯的SQL語句的對(duì)象。SQL語句被預(yù)編譯并存儲(chǔ)在PreparedStatement對(duì)象中。然后可以使用此對(duì)象多次高效地執(zhí)行該語句。包含在PreparedStatement對(duì)象中的SQL語句可具有一個(gè)或多個(gè)IN參數(shù)。IN參數(shù)的值在SQL語句創(chuàng)建時(shí)未被指定。相反地,該語句為每個(gè)IN參數(shù)保留一個(gè)問號(hào)(“?”)作為占位符。每個(gè)問號(hào)的值必須在該語句執(zhí)行之前,通過適當(dāng)?shù)姆椒ǎ╯etShort、setString、setInt等)來提供。如果需要任意參數(shù)類型轉(zhuǎn)換,使用setObject方法時(shí)應(yīng)該將目標(biāo)SQL類型作為其參數(shù)。在以下設(shè)置參數(shù)的示例中,con表示一個(gè)活動(dòng)連接。JDBC中常用的類與接口JDBC中常用的類與接口代碼如下:創(chuàng)建SQL命令語句Stringsql="updatet_custsetcustName=?wherecustNo=?";創(chuàng)建PreparedStatement預(yù)處理對(duì)象pstmtPreparedStatementpstmt=con.prepareStatement(sql);按照類型一一對(duì)應(yīng)賦值pstmt.setString(1,"張立強(qiáng)");pstmt.setString(2,"10002");JDBC中常用的類與接口代碼如下:執(zhí)行execute進(jìn)行更新pstmt.execute();pstmt對(duì)象包含語句"updatet_custsetcustName=?wherecustNo=?",它已發(fā)送給DBMS,并為執(zhí)行做好了準(zhǔn)備。JDBC中常用的類與接口4.DriverManager類:DriverManager類是JDBC的管理層,作用于用戶和驅(qū)動(dòng)程序之間。它跟蹤可用的驅(qū)動(dòng)程序,并在數(shù)據(jù)庫和相應(yīng)驅(qū)動(dòng)程序之間建立連接。對(duì)于簡(jiǎn)單的應(yīng)用程序,一般程序員需要在此類中直接使用的唯一方法是DriverManager.getConnection,用于建立與數(shù)據(jù)庫的連接。DriverManager類包含一列Driver類,它們已通過調(diào)用方法DriverManager.registerDriver對(duì)自己進(jìn)行了注冊(cè)。所有Driver類都必須包含一個(gè)靜態(tài)部分。它創(chuàng)建該類的實(shí)例,然后在加載該實(shí)例時(shí)DriverManager類進(jìn)行注冊(cè)。這樣,用戶正常情況下將不會(huì)直接調(diào)用DriverManager.registerDriver,而是在加載驅(qū)動(dòng)程序時(shí)由驅(qū)動(dòng)程序自動(dòng)調(diào)用。JDBC中常用的類與接口加載Driver類,然后自動(dòng)在DriverManager中注冊(cè)的方式有如下兩種:通過調(diào)用方法Class.forName。這將顯式地加載驅(qū)動(dòng)程序類。由于這與外部設(shè)置無關(guān),因此推薦使用這種加載驅(qū)動(dòng)程序的方法。例如:Class.forName("acme.db.Driver");為加載類acme.db.Driver。通過將驅(qū)動(dòng)程序添加到j(luò)ava.lang.System的屬性jdbc.drivers中。jdbc.drivers是一個(gè)由DriverManager類加載的驅(qū)動(dòng)程序類名的列表,由冒號(hào)分隔。初始化DriverManager類時(shí),它搜索系統(tǒng)屬性jdbc.drivers,如果用戶已輸入了一個(gè)或多個(gè)驅(qū)動(dòng)程序,則DriverManager類將試圖加載它們。加載Driver類并在DriverManager類中注冊(cè)后,它們即可用來與數(shù)據(jù)庫建立連接。當(dāng)調(diào)用DriverManager.getConnection方法發(fā)出連接請(qǐng)求時(shí),DriverManager將檢查每個(gè)驅(qū)動(dòng)程序,查看它是否可以建立連接。JDBC中常用的類與接口5.ResultSet接口:使用Statement對(duì)象執(zhí)行executeQuery方法,會(huì)返回一個(gè)數(shù)據(jù)庫的結(jié)果集。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026河北衡水市第八中學(xué)招聘?jìng)淇碱}庫附答案
- 企業(yè)風(fēng)險(xiǎn)管理制度
- 2026湖北省定向北京師范大學(xué)選調(diào)生招錄考試備考題庫附答案
- 2026福建廈門軌道建設(shè)發(fā)展集團(tuán)有限公司校園招聘?jìng)淇碱}庫附答案
- 2026福建省面向中國政法大學(xué)學(xué)生選調(diào)生選拔工作考試備考題庫附答案
- 2026西安西京初級(jí)中學(xué)教師招聘參考題庫附答案
- 2026貴州赫章縣德卓鎮(zhèn)衛(wèi)生院招聘村醫(yī)備考題庫附答案
- 2026陜西理工科技發(fā)展有限公司招聘參考題庫附答案
- 2026青海省海東市互助縣城市管理綜合行政執(zhí)法局招聘參考題庫附答案
- 中共玉環(huán)市委宣傳部關(guān)于下屬事業(yè)單位 市互聯(lián)網(wǎng)宣傳指導(dǎo)中心公開選聘1名工作人員的備考題庫附答案
- GB/T 15231-2023玻璃纖維增強(qiáng)水泥性能試驗(yàn)方法
- ESC2023年心臟起搏器和心臟再同步治療指南解讀
- 五年級(jí)上冊(cè)道德與法治期末測(cè)試卷推薦
- 重點(diǎn)傳染病診斷標(biāo)準(zhǔn)培訓(xùn)診斷標(biāo)準(zhǔn)
- 超額利潤(rùn)激勵(lì)
- GB/T 2624.1-2006用安裝在圓形截面管道中的差壓裝置測(cè)量滿管流體流量第1部分:一般原理和要求
- 蘭渝鐵路指導(dǎo)性施工組織設(shè)計(jì)
- CJJ82-2019-園林綠化工程施工及驗(yàn)收規(guī)范
- 小學(xué)三年級(jí)閱讀練習(xí)題《鴨兒餃子鋪》原文及答案
- 六宮格數(shù)獨(dú)100題
- 廚房設(shè)施設(shè)備檢查表
評(píng)論
0/150
提交評(píng)論