版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第14章JDBC技術(shù),主要內(nèi)容,第14.1 JDBC的概要在第14.2jdbc中建立連接第14.3檢索知道數(shù)據(jù)庫信息的第14.4數(shù)據(jù)庫第14.5檢索結(jié)果集更新第14.6數(shù)據(jù)庫的第14.7 JDBC的情況,第14.1 JDBC的支持基本SQL功能的通用低級別應(yīng)用程序編程接口在不同的數(shù)據(jù)庫功能模塊中提供了統(tǒng)一的用戶界面. 是為Java語言定義的SQL調(diào)用級別(CLI )接口。JDBC的結(jié)構(gòu)、面向開發(fā)人員的JDBC API和面向下層的JDBC驅(qū)動(dòng)程序API、JDBC的結(jié)構(gòu)以及JDBC API是一系列接口,應(yīng)用程序可以執(zhí)行數(shù)據(jù)庫綁定、執(zhí)行SQL語句并返回結(jié)果。JDBC的結(jié)構(gòu),Java.sql.Driv
2、erManager為加載驅(qū)動(dòng)程序和創(chuàng)建新的數(shù)據(jù)庫綁定提供支持。 Java.sql.Connection將連接到指定數(shù)據(jù)庫的Java.sql.Statement完成為指定連接上的SQL執(zhí)行聲明的容器,并包含兩個(gè)重要子類。 Java.sql.PreparedSatement執(zhí)行預(yù)編譯的sql聲明,Java.sql.CallableStatement調(diào)用Java.sql.ResultSet執(zhí)行數(shù)據(jù)庫中存儲的過程JDBC驅(qū)動(dòng)程序接口是面向驅(qū)動(dòng)程序開發(fā)人員的接口。每個(gè)驅(qū)動(dòng)程序都是java.sql.Connection、java.sql.Statement、java.sql.PreparedStateme
3、nt、Java 如果Java.sql.DriverManager需要加載驅(qū)動(dòng)程序,則必須為每個(gè)驅(qū)動(dòng)程序提供可以實(shí)現(xiàn)java.sql.Driver接口的類。 例如,sun.JDBC.odbc.jdbcodbcdrivercom.Microsoft.JDBC.SQL server.SQL server driver, jdbc驅(qū)動(dòng)程序類型Jdbc-odbc橋接器native-API partly-javadriverlocalapi驅(qū)動(dòng)程序?qū)dbc調(diào)用直接轉(zhuǎn)換為數(shù)據(jù)庫的標(biāo)準(zhǔn)調(diào)用,然后再轉(zhuǎn)換為數(shù)據(jù)庫net-protocol all-j 訪問的是用java編寫的jdbc驅(qū)動(dòng)程序,將jdbc轉(zhuǎn)換為與D
4、BMS無關(guān)的網(wǎng)絡(luò)協(xié)議,通過網(wǎng)絡(luò)服務(wù)器轉(zhuǎn)換為DBMS協(xié)議。 native-protocol all-java驅(qū)動(dòng)程序是用Java完全創(chuàng)建的JDBC驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序?qū)DBC調(diào)用直接轉(zhuǎn)換為DBMS使用的網(wǎng)絡(luò)協(xié)議。 14.4數(shù)據(jù)庫14.5搜索結(jié)果集14.6數(shù)據(jù)庫14.7 JDBC的情況更新,通過14.2JDBC建立連接14.3數(shù)據(jù)庫的信息,以14.2JDBC建立連接,主要內(nèi)容為14.1 JDBC的概要。 所有jdbc程序的第一步是獲取與數(shù)據(jù)庫建立連接的Java.sql.Connection對象,包括兩個(gè)步驟: (1)要加載驅(qū)動(dòng)程序,請?jiān)趈ava屬性中設(shè)置sql.driver以創(chuàng)建驅(qū)動(dòng)程序列表。
5、此屬性是一組用冒號分隔的驅(qū)動(dòng)器類的名稱。 驅(qū)動(dòng)程序所在的包存在于生成路徑中。 使用Class.forName ()顯式加載驅(qū)動(dòng)程序。 例如class.forname ( sun.JDBC.odbc.jdbcodbdriver ); 加載sun提供的jdbc-odbc網(wǎng)橋驅(qū)動(dòng)程序,驅(qū)動(dòng)程序管理器在連接到數(shù)據(jù)庫時(shí)嘗試使用此驅(qū)動(dòng)程序( com.Microsoft.JDBC.SQL server.SQL s 加載SqlServer驅(qū)動(dòng)程序并通過JDBC建立連接;(2)建立連接并指定數(shù)據(jù)庫連接的url;數(shù)據(jù)源位置使用驅(qū)動(dòng)程序管理器. getconnection (URL )。 例如:字符串URL=“JD
6、BC : odbc :數(shù)據(jù)源”或“JDBC : Microsoft : SQL server :/server _ name :433”連接conn=驅(qū)動(dòng)程序管理器. getconnection (URL )或連接connection conn=驅(qū)動(dòng)程序管理器. getconnection (ST 字符串密碼連接=驅(qū)動(dòng)程序管理器. getconnection ( JDBC : Microsoft : SQL server :/localhost :433; DatabaseName=學(xué)生, sa , 123456 ; 主要內(nèi)容: 14.1 JDBC概述14.2通過JDBC建立連接知道14.3數(shù)
7、據(jù)庫的信息14.4數(shù)據(jù)庫14.5檢索結(jié)果集14.6數(shù)據(jù)庫14.7 JDBC的情況更新,知道14.3數(shù)據(jù)庫的信息,建立與數(shù)據(jù)庫的連接這些信息是由database元數(shù)據(jù)類的對象實(shí)現(xiàn)的。databasemetadatadbma=conn.get metadata (); 數(shù)據(jù)庫元數(shù)據(jù)的主要方法,基本信息getURL (); getusername () is readonly () getdaabaseproducename () j; getDriverName (); getDriverVersion (); 其他gets tables () get columns () getindedinf
8、o (); 例如,主要內(nèi)容是建立14.1 JDBC的連接概要14.2jdbc,知道14.3數(shù)據(jù)庫的信息,更新14.4數(shù)據(jù)庫14.5檢索結(jié)果集14.6數(shù)據(jù)庫14.7 JDBC的情況,檢索14.4數(shù)據(jù)庫(stat (2)查詢語句string sql=“選擇*從客戶”resultsetsr=stmt.execute query (SQL ) execute query ()通常執(zhí)行SQL語句,返回結(jié)果集,并返回execute ()消息一個(gè)Statement對象同時(shí)僅打開一個(gè)結(jié)果集,而打開第二個(gè)結(jié)果集則意味著關(guān)閉第一個(gè)結(jié)果集。 關(guān)閉(Statement stmt.close ()的查詢數(shù)據(jù)庫(Prep
9、aredStatement )在每次Statement對象執(zhí)行sql語句時(shí)向數(shù)據(jù)庫傳遞語句,同時(shí)多次執(zhí)行同一語句時(shí)效率低。 PreparedStatement可用于提高數(shù)據(jù)庫的預(yù)編譯功能的速度. PreparedStatement對象的sql語句可以接受參數(shù)。 每個(gè)執(zhí)行都可以傳遞不同的參數(shù).查詢數(shù)據(jù)庫. (1) string SQL= select * fromcustomerwhereage=? ”的preparedstatepstmt=conn.preparation ment (SQL ) (2)運(yùn)行pstmt.set int (1,30 ) /第一個(gè)參數(shù)值為30 resultset=p
10、stmt.execute qu (關(guān)閉Pstmt.close ()并執(zhí)行存儲過程的查詢數(shù)據(jù)庫(callablestatement ) :從connection對象的prepareCall ()創(chuàng)建callablestatement對象格式為: call procedureName,procedureName為存儲過程名. callablestatementcstmt=conn.prepare call ( call query1() ); (2) resultsetsr=cstmt.execute query (); (關(guān)閉cstmt.close (),了解主要內(nèi)容,通過14.1 JDBC的概
11、要14.2jdbc建立連接14.3數(shù)據(jù)庫的信息14.4數(shù)據(jù)庫14.5搜索結(jié)果集14.6更新數(shù)據(jù)庫14.7 JDBC的情況14.5搜索結(jié)果集ResultSet對象包含由查詢語句返回的表,該表包含所有查詢結(jié)果,并通過行和列進(jìn)行處理。 ResultSet對象保持指向當(dāng)前行的指針。 最初,該指針指向第一行之前的. ResultSet類的next ()方法,并將該指針移動(dòng)到下一行。 next方法的返回值為布爾值,如果為true,則移動(dòng)到下一行。 如果返回false,則沒有下一行。 getXXX ()方法可以從列中獲取結(jié)果。 XXX是JDBC的java數(shù)據(jù)類型。 必須指定要檢索的列名或索引值(例如,get
12、Int (參數(shù)) ),并檢索結(jié)果集。 statement stmt=conn.create statement (); 字符串SQL=“選擇a,b,從我的表”; resultset SRS=stmt.execute query (SQL ) while (RS.next () inti=RS.getint (2); String s=rs.getString(“a”); 獲取byte b =RS.getbytes (3) int crow=RS.getrow ()/當(dāng)前行號,主要內(nèi)容是14.1 JDBC概述14.2通過JDBC建立連接知道數(shù)據(jù)庫信息的14.4數(shù)據(jù)庫14.5搜索結(jié)果集14.6更新14.7 JDBC的情況,更新14.6數(shù)據(jù)庫,對應(yīng)于包含更改、更新和刪除記錄的數(shù)據(jù)庫的in delete等.數(shù)據(jù)庫更新操作也在Statement對象上執(zhí)行. executeQuery ()方法,而不使用executeUpdate () 使用方法. executeUpdate的返回值更新受其影響的記錄的行數(shù).數(shù)據(jù)庫的string
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)心理學(xué)(心理學(xué)基礎(chǔ))試題及答案
- 2025年大學(xué)經(jīng)濟(jì)法(經(jīng)濟(jì)法)試題及答案
- 2025年大二(社會體育指導(dǎo)與管理)運(yùn)動(dòng)生理學(xué)期末試題
- 2025年中職會計(jì)(會計(jì)法規(guī)基礎(chǔ))試題及答案
- 2025年高職市政工程技術(shù)(城市道路工程施工)試題及答案
- 2025年中職(包裝產(chǎn)品銷售)防護(hù)功能階段測試卷
- 2025年高職數(shù)字媒體藝術(shù)設(shè)計(jì)(媒體應(yīng)用)試題及答案
- 2025年中職機(jī)電(機(jī)電基礎(chǔ)應(yīng)用)試題及答案
- 2025年大學(xué)大三(預(yù)防醫(yī)學(xué))健康教育與促進(jìn)試題及答案
- 2025年大學(xué)護(hù)理學(xué)(老年護(hù)理實(shí)訓(xùn))試題及答案
- 2025年統(tǒng)編版語文三年級上冊第七、八單元模擬測試卷
- 2026年江蘇鹽城高中政治學(xué)業(yè)水平合格考試卷試題(含答案詳解)
- 主動(dòng)脈瓣置換術(shù)指南
- 裝配式裝修管線分離培訓(xùn)課件
- 2025年陜西公務(wù)員《申論(C卷)》試題含答案
- 管理體系不符合項(xiàng)整改培訓(xùn)試題及答案
- 醫(yī)院住院部建筑投標(biāo)方案技術(shù)標(biāo)
- 偏癱康復(fù)的科普小知識
- 2025年(AIGC技術(shù))生成式AI應(yīng)用試題及答案
- 肺癌全程管理課件
- 商用變壓器知識培訓(xùn)內(nèi)容課件
評論
0/150
提交評論