Java數(shù)據(jù)庫(kù)編程接口.ppt_第1頁(yè)
Java數(shù)據(jù)庫(kù)編程接口.ppt_第2頁(yè)
Java數(shù)據(jù)庫(kù)編程接口.ppt_第3頁(yè)
Java數(shù)據(jù)庫(kù)編程接口.ppt_第4頁(yè)
Java數(shù)據(jù)庫(kù)編程接口.ppt_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Java數(shù)據(jù)庫(kù)編程接口 JDBC,教材第9章,JDBC概述,ODBC(Open DataBase Connectivity) 微軟制定的一個(gè)C語言與數(shù)據(jù)庫(kù)的統(tǒng)一接口 JDBC(Java DataBase Connectivity) 為Java語言定義的一個(gè)SQL調(diào)用級(jí)接口。 為訪問關(guān)系數(shù)據(jù)庫(kù)提供了一個(gè)標(biāo)準(zhǔn)接口。,JDBC概述,Java application,JDBC Driver Manager,JDBC API,JDBC Driver (數(shù)據(jù)庫(kù)廠家提供),JDBC Driver API,DBMS,數(shù)據(jù)庫(kù)連接,每個(gè)JDBC應(yīng)用程序至少要有一個(gè)JDBC驅(qū)動(dòng)程序版本,JDBC驅(qū)動(dòng)程序是Driver接口類的實(shí)現(xiàn)。 Driver類是驅(qū)動(dòng)程序廠家實(shí)現(xiàn)的接口,Driver使DriverManager和JDBC應(yīng)用程序?qū)涌梢元?dú)立于具體的數(shù)據(jù)庫(kù)系統(tǒng)。,應(yīng)用程序,JDBC,Oracle 驅(qū)動(dòng)程序,MySQL 驅(qū)動(dòng)程序,JDBC API(類),java.sql.DriveManager 負(fù)責(zé)裝載、拆除驅(qū)動(dòng)程序,負(fù)責(zé)連接驅(qū)動(dòng)程序。 java.sql.Connection 實(shí)現(xiàn)對(duì)某一數(shù)據(jù)庫(kù)的連接功能(建立連接)。 java.sql.Statement 在一個(gè)給定的連接中作為執(zhí)行SQL語句的容器。 java.sql.PreparedStatement 用于執(zhí)行預(yù)編譯的SQL聲明 java.sql.CallableStatement 用于執(zhí)行數(shù)據(jù)庫(kù)中存儲(chǔ)過程的調(diào)用 java.sql.ResultSet 保存SQL語句執(zhí)行結(jié)果,數(shù)據(jù)庫(kù)連接例(Oracle),Oracle安裝后,設(shè)置classpath,例如: CLASSPATHc:oracleora92jdbclibojdbc14.jar 注冊(cè)(裝入)oracle jdbc驅(qū)動(dòng)程序 語法:DriverManager.registerDriver(Driver driver) 例:DriverManager.registerDriver( new oracle.jdbc.driver.OracleDriver(); 建立連接(到指定數(shù)據(jù)庫(kù)) Connection con = DriverManager.getConnection (“jdbc:oracle:thin:166.111.7.248:1521:o8i2“, “scott“, “tiger“); 該方法將挑選一個(gè)合適的已注冊(cè)的JDBC驅(qū)動(dòng)程序,執(zhí)行sql語句Statement類,建立Statement類對(duì)象(sql容器) Statement stmt = conn.createStatement(); 查詢: ResultSet rs = stmt.executeQuery(“select ename,age from emp“); 修改: int count = stmt.executeUpdate(“update emp set age = 30 where ename=MARTIN “) INSERT, UPDATE or DELETE (返回行數(shù)) DDL 語句(返回0),ResultSet類的方法,移動(dòng)指針 boolean rs.next() ; 取結(jié)果集當(dāng)前行的數(shù)據(jù): 語法:getXXX(列序號(hào)或列名) /方法名的重載 String rs.getString(“ename“) ; int rs.getInt (“age“) ; 或 int rs.getInt (2) ;,訪問數(shù)據(jù)庫(kù)例,import java.sql.* ; class Test public static void main (String args) throws SQLException DriverManager.registerDriver(new oracle.jdbc.OracleDriver(); Connection con = DriverManager.getConnection ( “jdbc:oracle:thin:166.111.7.248:1521:o8i2“, “帳號(hào)“ , “密碼“); Statement stmt=con.createStatement(); /創(chuàng)建Statement對(duì)象 System.out.println(“-查詢并顯示所有系的學(xué)生-“); ResultSet rs=stmt.executeQuery(“SELECT * FROM student order by birthday“); while(rs.next() /顯示查詢結(jié)果 System.out.print(rs.getString(“sno“) + “ “); System.out.print(rs.getString(“sname“) + “ “); System.out.print(rs.getString(“sex“) + “ “);,9-1,訪問數(shù)據(jù)庫(kù)例,System.out.print(rs.getDate(“birthday“) + “ “); System.out.println(rs.getString(“dno“) + “ “); ; System.out.println(“-統(tǒng)計(jì)并顯示各系學(xué)生數(shù)-“); rs=stmt.executeQuery(“SELECT dno,count(*) as num FROM student group by dno“); while(rs.next() /顯示查詢結(jié)果 System.out.print(rs.getString(“dno“) + “ “); System.out.println(rs.getInt(“num“) + “ “); ; System.out.println(“-插入一個(gè)學(xué)生記錄:-“); String s = “ INSERT INTO student VALUES(s00000, 林時(shí), 男 , 21-4月-1990 , d01) “ ; stmt.executeUpdate(s); /添加一條記錄,訪問數(shù)據(jù)庫(kù)例,System.out.println(“-查詢d01系的學(xué)生:-“); rs=stmt.executeQuery(“SELECT * FROM student WHERE dno=d01 “); /查詢 while(rs.next() /顯示 System.out.print(rs.getString(“sno“) + “ “); System.out.println(rs.getString(“sname“) + “ “); ; System.out.println(“-刪除一個(gè)學(xué)生記錄-“); stmt.executeUpdate(“ DELETE FROM student WHERE sname=林時(shí) “); System.out.println(“-刪除記錄后,查詢d01系的學(xué)生-“); rs=stmt.executeQuery(“SELECT sno,sname FROM student WHERE dno=d01 “); /查詢表格,訪問數(shù)據(jù)庫(kù)例,while(rs.next() /顯示查詢結(jié)果 System.out.print(rs.getString(“sno“) + “ “); System.out.println(rs.getString(“sname“) + “ “); ; stmt.close(); /關(guān)閉語句 con.close(); /關(guān)閉連接 /main() ,9-1,PreparedStatement類,予編譯(反復(fù)執(zhí)行效率高),帶參數(shù) PreparedStatement ps = conn. preparedStatement( “update emp set sal=sal+? where eno=? “) ; ps.setFloat(1, 210.00) ps.setInt(2, 110592) ps.executeQuery(); ps.executeUpdate() ;,CallableStatement類,執(zhí)行存儲(chǔ)過程 CallableStatement cs = conn.prepareCall(“ call 過程名 “); cs. executeQuery(); ps.execUpdate() ;,JDBC API 層次,驅(qū)動(dòng)程序管理器,驅(qū)動(dòng)程序,連接,語句,預(yù)處理語句,可調(diào)用語句,結(jié)果集,結(jié)果集,結(jié)果集,驅(qū)動(dòng)程序?qū)?應(yīng)用程序?qū)?JDBC應(yīng)用,java ap

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論