




已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
Java數(shù)據(jù)庫編程接口 JDBC,教材第9章,JDBC概述,ODBC(Open DataBase Connectivity) 微軟制定的一個C語言與數(shù)據(jù)庫的統(tǒng)一接口 JDBC(Java DataBase Connectivity) 為Java語言定義的一個SQL調(diào)用級接口。 為訪問關(guān)系數(shù)據(jù)庫提供了一個標(biāo)準(zhǔn)接口。,JDBC概述,Java application,JDBC Driver Manager,JDBC API,JDBC Driver (數(shù)據(jù)庫廠家提供),JDBC Driver API,DBMS,數(shù)據(jù)庫連接,每個JDBC應(yīng)用程序至少要有一個JDBC驅(qū)動程序版本,JDBC驅(qū)動程序是Driver接口類的實現(xiàn)。 Driver類是驅(qū)動程序廠家實現(xiàn)的接口,Driver使DriverManager和JDBC應(yīng)用程序?qū)涌梢元毩⒂诰唧w的數(shù)據(jù)庫系統(tǒng)。,應(yīng)用程序,JDBC,Oracle 驅(qū)動程序,MySQL 驅(qū)動程序,JDBC API(類),java.sql.DriveManager 負責(zé)裝載、拆除驅(qū)動程序,負責(zé)連接驅(qū)動程序。 java.sql.Connection 實現(xiàn)對某一數(shù)據(jù)庫的連接功能(建立連接)。 java.sql.Statement 在一個給定的連接中作為執(zhí)行SQL語句的容器。 java.sql.PreparedStatement 用于執(zhí)行預(yù)編譯的SQL聲明 java.sql.CallableStatement 用于執(zhí)行數(shù)據(jù)庫中存儲過程的調(diào)用 java.sql.ResultSet 保存SQL語句執(zhí)行結(jié)果,數(shù)據(jù)庫連接例(Oracle),Oracle安裝后,設(shè)置classpath,例如: CLASSPATHc:oracleora92jdbclibojdbc14.jar 注冊(裝入)oracle jdbc驅(qū)動程序 語法:DriverManager.registerDriver(Driver driver) 例:DriverManager.registerDriver( new oracle.jdbc.driver.OracleDriver(); 建立連接(到指定數(shù)據(jù)庫) Connection con = DriverManager.getConnection (“jdbc:oracle:thin:166.111.7.248:1521:o8i2“, “scott“, “tiger“); 該方法將挑選一個合適的已注冊的JDBC驅(qū)動程序,執(zhí)行sql語句Statement類,建立Statement類對象(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類的方法,移動指針 boolean rs.next() ; 取結(jié)果集當(dāng)前行的數(shù)據(jù): 語法:getXXX(列序號或列名) /方法名的重載 String rs.getString(“ename“) ; int rs.getInt (“age“) ; 或 int rs.getInt (2) ;,訪問數(shù)據(jù)庫例,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“, “帳號“ , “密碼“); Statement stmt=con.createStatement(); /創(chuàng)建Statement對象 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ù)庫例,System.out.print(rs.getDate(“birthday“) + “ “); System.out.println(rs.getString(“dno“) + “ “); ; System.out.println(“-統(tǒng)計并顯示各系學(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(“-插入一個學(xué)生記錄:-“); String s = “ INSERT INTO student VALUES(s00000, 林時, 男 , 21-4月-1990 , d01) “ ; stmt.executeUpdate(s); /添加一條記錄,訪問數(shù)據(jù)庫例,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(“-刪除一個學(xué)生記錄-“); stmt.executeUpdate(“ DELETE FROM student WHERE sname=林時 “); System.out.println(“-刪除記錄后,查詢d01系的學(xué)生-“); rs=stmt.executeQuery(“SELECT sno,sname FROM student WHERE dno=d01 “); /查詢表格,訪問數(shù)據(jù)庫例,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í)行存儲過程 CallableStatement cs = conn.prepareCall(“ call 過程名 “); cs. executeQuery(); ps.execUpdate() ;,JDBC API 層次,驅(qū)動程序管理器,驅(qū)動程序,連接,語句,預(yù)處理語句,可調(diào)用語句,結(jié)果集,結(jié)果集,結(jié)果集,驅(qū)動程序?qū)?應(yīng)用程序?qū)?JDBC應(yīng)用,java ap
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)設(shè)計師在項目中的協(xié)同工作技巧試題及答案
- 2024年美術(shù)設(shè)計的趨勢研究國際商業(yè)美術(shù)設(shè)計師考試試題及答案
- 2024年廣告設(shè)計師設(shè)計與文化融合試題及答案
- 信息奧賽選拔試題及答案
- 勞動法解析試題及答案
- 無錫中考英語試題及答案
- 焊工工考試試題及答案
- 反恐培訓(xùn)考試題及答案
- 檢驗過程中常見錯誤識別試題及答案
- 2024年紡織品檢驗員證書考試的心態(tài)調(diào)整 試題及答案
- 合資公司成立可行性研究報告范文
- 2025年中國電子產(chǎn)品租賃行業(yè)市場占有率及投資前景預(yù)測分析報告
- 2025年中國亮白防蛀固齒牙膏市場調(diào)查研究報告
- 上甘嶺戰(zhàn)役課件
- 湖北省武漢市2025屆高中畢業(yè)生四月調(diào)研考試物理試題及答案(武漢四調(diào))
- 珠寶并購策略優(yōu)化-全面剖析
- 人教PEP版英語五年級下冊 Unit 4 單元練習(xí)卷
- AI時代職業(yè)院校財會類專業(yè)課程教學(xué)改革探討
- 金氏五行升降中醫(yī)方集
- 煤礦防洪專項應(yīng)急預(yù)案
- 中華民族節(jié)日文化知到課后答案智慧樹章節(jié)測試答案2025年春云南大學(xué)
評論
0/150
提交評論