分析學(xué)習(xí)java教程_第1頁
分析學(xué)習(xí)java教程_第2頁
分析學(xué)習(xí)java教程_第3頁
分析學(xué)習(xí)java教程_第4頁
分析學(xué)習(xí)java教程_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、使用JDBC連接數(shù)據(jù)庫本章目標(biāo)掌握J(rèn)DBC的實現(xiàn)原理熟練掌握使用JDBC連接數(shù)據(jù)庫熟練掌握J(rèn)DBC中各個對象的使用JDBC數(shù)據(jù)庫連接JDBCJDBC(Java Data Base Connectivity)JAVA連接數(shù)據(jù)庫技術(shù)的簡稱,是JAVA連接各種數(shù)據(jù)庫的能力應(yīng)用程序ORACLESQLSERVERMYSQLJDBCJDBC數(shù)據(jù)庫連接JDBC的工作原理應(yīng)用程序JDBC APIORACLE驅(qū)動SQLSERVER驅(qū)動ORACLE數(shù)據(jù)庫SQLSERVER數(shù)據(jù)庫驅(qū)動管理器SUN提供JDBC APC集成在java.sql和javax.sql包中JDBC APC主要包括:DriverManager類C

2、onnection接口Statement接口ResultSet接口JDBC驅(qū)動是不同數(shù)據(jù)庫廠商對各自數(shù)據(jù)庫進(jìn)行JDBC實現(xiàn)包JDBC數(shù)據(jù)庫連接JDBC的功能主要是實現(xiàn)如下處理將應(yīng)用程序和數(shù)據(jù)庫進(jìn)行連接執(zhí)行SQL語句將執(zhí)行語句得到的結(jié)果返回應(yīng)用程序DriverManager負(fù)責(zé)管理加載的驅(qū)動Connection負(fù)責(zé)對數(shù)據(jù)庫的鏈接Statement由Connection產(chǎn)生,負(fù)責(zé)執(zhí)行SQL語句ResultSet保存Statement執(zhí)行得到的結(jié)果JDBC數(shù)據(jù)庫連接JDBC進(jìn)行數(shù)據(jù)庫連接的方式主要有ODBC連接和純JAVA驅(qū)動連接ODBC連接時需要配置當(dāng)前系統(tǒng)的數(shù)據(jù)源JDBC不依賴當(dāng)前系統(tǒng)環(huán)境,直接

3、由驅(qū)動獲取連接JDBC數(shù)據(jù)庫連接JDBC進(jìn)行數(shù)據(jù)庫操作訪問的步驟主要如下:加載驅(qū)動包通過驅(qū)動管理獲取應(yīng)用程序和數(shù)據(jù)庫的連接通過連接獲取處理器對象使用處理器執(zhí)行SQL語句將執(zhí)行得到的結(jié)果返回應(yīng)用程序關(guān)閉使用到的各個對象JDBC數(shù)據(jù)庫連接ODBC連接Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);Connection=DriverManager.getConnection(“jdbc : odbc : 數(shù)據(jù)源名稱”)JDBC數(shù)據(jù)庫連接純JAVA JDBC連接Class.forName(“oracle.jdbc.driver.OracleDriver”);

4、Connection con=DirverManager.getConnection(“jdbc:oracle:thin:IP:端口:實例名” , ”用戶名” , ”密碼”)JDBC數(shù)據(jù)庫連接使用處理器執(zhí)行SQL語句Statement stmt=con. createStatement();int count=stmt.executeUpdate(SQL語句);/ResultSet rs=stmt.executeQuery(SQL語句);JDBC數(shù)據(jù)庫連接使用結(jié)果集獲取查詢結(jié)果while(rs.next()/根據(jù)每列的類型調(diào)用不同的方法/如int型rs.getInt(列所在索引);/如Stri

5、g類型rs.getString(列所在索引);JDBC數(shù)據(jù)庫連接關(guān)閉對象結(jié)果集.close();處理器.close();連接.close();JDBC數(shù)據(jù)庫連接使用預(yù)處理執(zhí)行SQL語句PreparedStatement pstmt=con. prepareStatement(SQL語句)pstmt.executeQuery();pstmt.executeUpdate();JDBC數(shù)據(jù)庫連接預(yù)處理器使用pstmt=con. prepareStatement(insert into users values(?,?,?);/設(shè)置參數(shù)pstmt.setInt(1,1);pstmt.setString

6、(2,”tom”);pstmt.setInt(3,27);pstmt.executeUpdate();JDBC數(shù)據(jù)庫連接PreparedStatement和Statement的區(qū)別預(yù)處理可以將要執(zhí)行的SQL先進(jìn)行編譯,下次使用時可以直接執(zhí)行已經(jīng)編譯過的代碼,普通的處理器每次執(zhí)行時都需要重新編譯預(yù)處理使用參數(shù)注入的方式增強(qiáng)SQL操作的安全性,防止外部的惡意參數(shù)注入JDBC數(shù)據(jù)庫連接使用CallableStatement執(zhí)行存儲過程CallableStatement cstmp=con. prepareCall(“ call 過程名”);/也可以使用?進(jìn)行占位,實現(xiàn)參數(shù)注入cstmp.setInt

7、(索引,參數(shù));/執(zhí)行cstmp.execute();JDBC數(shù)據(jù)庫連接帶輸出參數(shù)的存儲過程執(zhí)行CallableStatement cstmp=con. prepareCall(“ call 過程名 ”);/注冊輸出參數(shù)cstmp.registerOutParameter(索引,輸出參數(shù)類型);/執(zhí)行cstmp.execute();/獲取輸出參數(shù)String name=cstmp.getString(1);JDBC數(shù)據(jù)庫連接輸出參數(shù)為游標(biāo)的存儲過程CallableStatement cstmp=con. prepareCall(“ call 過程名 ”);/注冊輸出參數(shù)cstmp.registerOutPara

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論