




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、電子課件JAVA語言程序設計java11第11章JDBC技術11.1關系型數據庫的驅動與連接11.2使用SQL指令操作數據庫本章目錄11.1關系型數據庫的驅動與連接一、JDBC技術概述JDBC(Java DateBase Connectivity)是一種可用于執行SQL語句指令的Java API,它由一些Java語言寫的類和接口組成,主要存放在java.sql包中。常用的包括DriverManager類,Connection接口,Statement接口,ResultSetMetaDada接口,ResultSet接口等,在J2EE中又對JDBC的有關功能進行了增強和擴展,新的內容放在了javax
2、.sql包中。Java語言程序使用JDBC與數據庫進行通訊,其主要的功能是實現與各種數據庫的連接,實現了API與特定驅動器的分離。JDBC提供了一種標準的應用程序設計接口,使開發人員可以用純Java語言編寫完整的數據庫應用程序。在Java語言的程序中不必考慮數據庫的類型而采用統一的程序代碼完成數據庫的管理,可以很方便地將SQL語句指令傳送給幾乎任何一種數據庫。通過使用JDBC,大大地擴展了Java語言處理數據庫的能力。現在隨著Java語言為越來越多的大公司所支持,大多數流行的商業化的數據庫管理系統都已經包含有JDBC驅動器,而且由于Java語言的開放式策略,市場上還有第三方的產品可供選擇,使用
3、JDBC也越來越方便。JDBC可以完成以下三個任務:同一個數據庫建立連接;向數據庫發送SQL語句;處理數據庫返回的結果。JDBC是一種底層的API,它使用語句級的方式直接調用SQL命令。可以利用JDBC與ODBC之間的橋接器方便地實現對Microsoft ODBC的訪問,具有平臺無關性、安全性、完整性、魯棒性等特點。二、JDBC的驅動管理器JDBC中的驅動管理器就是DriverManager類,是JDBC的管理層,它在數據庫和用戶驅動器之間工作,在數據庫和合適的驅動器之間建立連接。真正進行數據庫連接的是Driver類中的connect()方法。編程人員除了可以調用DriverManager類的
4、getConnection()方法之外,還可以調用該類的getDriver(),getDrivers(),registerDriver()等方法進一步完成程序的功能。DriverManager類維護著一系列驅動器程序Driver類,這些類是通過實現Java類庫中的Driver接口而得到的,這些類通過調用DriverManager類的getConnection()方法來注冊自己,然后在DriverManager類被調用時載入,而且在數據庫驅動器載入時被自動調動。調用DriverManager類的getConnection()方法是在數據庫和驅動器之間建立連接的標準方法,具體格式為String u
5、rl = jdbc:odbc:wombat;Connection con = DriverManager.getConnection( url, oboy, 12Java );三、JDBC驅動程序的類型JDBC驅動程序規范把JDBC驅動程序分為4種類型,分別應用于某種針對DBMS(DataBase Management System)的特定需求: JDBC-ODBC驅動程序 Java/本地代碼驅動程序 Java協議被稱為“第四類數據庫協議”的純Java實現的JDBC驅動程序11.2使用SQL指令操作數據庫利用JDBC查詢數據庫的處理過程分下面5個步驟:載入JDBC驅動程序,連接到DBMS,創建
6、并執行語句,處理DBMS返回的數據,終止與DBMS的連接。一、載入JDBC驅動程序通過調用Class.forName( com.mysql.jdbc.Driver );方法,實現載入JDBC驅動程序。所選定的驅動程序的名稱二、連接到DBMSgetConnection()方法有三個重載體:getConnection( String url )getConnection( String url, Properties info )getConnection( String url, String user, String password )作用是請求DBMS訪問數據庫,如果訪問請求被允許將返回一
7、個Connection對象,否則該方法將拋出一個SQLException異常。執行連接的具體形式為:String url = jdbc:mysql:/localhost:3306/graduation_design;Connection connect = DriverManager.getConnection( url );協議子協議子名稱連接池技術:通常一個需要與數據庫交互的用戶必須打開一個連接,在處理過程中如果一直保持連接的話有可能會占用數據庫的連接從而影響其他用戶,如果在每次訪問數據庫之后都關閉連接而在需要時又打開連接又會消耗系統時間并且降低性能。JDBC 2.1版引入了連接池技術。連
8、接池就是一個數據庫連接的集合,在使用的時候只需打開一次并載入內存即可被重復使用,既不必每次使用都重新連接DBMS也不消耗系統時間。三、創建并執行語句在成功地連接了數據庫之后,就可以操作和查詢數據庫了。這個過程是通過Statement對象發送SQL語句返回查詢結果實現的。JDBC的查詢發送機制提供了三種對象來實現查詢語句的發送執行,它們是Statement對象、PreparedStatement對象和CallableStatement對象。它們都可以作為執行SQL語句的容器對象,分別用于發送不同類型的SQL語句:Statement對象用于執行簡單的SQL語句,也就是沒有參數的SQL語句;Prep
9、aredStatement對象用于執行需要重復執行的預編譯過的SQL語句;CallableStatement對象用于執行一個數據庫的存儲過程。創建Statement對象可以通過Connection類方法createStatement()來實現:Statement stmt = connect.createStatement();Statement提供了三種不同的方法可以執行SQL語句:executeQuery( String sql );/執行給定的SQL查詢語句,返回ResultSet對象。executeUpdate( String sql );/執行給定的SQL更新語句,返回INSERT、
10、UPDATE或DELETE語句的行計數,或者返回0表示不返回任何內容。execute( String sql ); /執行給定的SQL查詢語句,該語句可能返回多個結果。查詢完成之后要將Statement對象關閉,形式為:stmt.close();創建PreparedStatement對象可以通過Connection類方法PreparedStatement來實現:String query = SELECT * FROM namelist WHERE x=?;PreparedStatement pstmt = connect.PreparedStatement( query );使用Prepare
11、dStatement對象是為了處理預編譯的SQL語句的對象。使用PreparedStatement對象查詢的方式與使用Statement對象查詢的方式相似。創建CallableStatement對象可以通過Connection類方法prepareCall來實現:String query = call getTestData(?,?);CallableStatement cstmt = connect.prepareCall( query );使用CallableStatement對象用來從J2EE對象中調用一個存儲過程。四、處理DBMS返回的數據JDBC接收查詢結果是通過ResultSet對象
12、來實現的,稱為結果集。一個ResultSet對象包含了執行某個SQL查詢語句后滿足條件的所有的行,ResultSet接口中提供了對這些行的訪問方法,用戶可以通過一組get方法來訪問。可滾動結果集和可更新結果集。在處理查詢結果集的時候,經常要用到元數據。所謂元數據是描述數據的數據信息,包括描述數據庫的元數據和描述結果集的元數據。描述數據庫的元數據通過接口DatabaseMetaData定義,可以經由調用Connection接口的getMetaData()方法獲取DatabaseMetaData對象,并利用接口DatabaseMetaData中的方法得到數據庫中的數據的主要信息。描述結果集的元數據通過接口ResultSetMetaData定義,可以經由調用ResultSet接口的getMetaData()方法獲取ResultSetMetaData對象,利用接口ResultSetMetaData中的方法得到結果集中的數據的信息,有助于程序員處理數據。五、終止與DBMS的連接當完成對數據庫的訪問之后,通過調用Connection接口的close()方法關閉Connection對象,終止與數據庫的連接,如果在關閉連接時遇到問題,該方法將會拋出一個異常。關閉與數據庫的連接時將自動關閉
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年 貴州水利水電職業技術學院招聘教師附答案
- 2025年養護機械市場分析現狀
- 中國背投電視行業發展潛力預測及投資戰略研究報告
- 焦化耐火設備項目投資可行性研究分析報告(2024-2030版)
- 2025年中國兔毛手袋行業市場發展前景及發展趨勢與投資戰略研究報告
- 長江存儲培訓課件
- 視頻拍攝制作合同
- 技術服務合同
- 中國電子特種氣體行業市場調查研究及投資前景預測報告
- 中國無菌皮下注射針行業市場前景預測及投資價值評估分析報告
- 藍色卡通風畢業典禮PPT模板
- 登高作業證題庫
- 音樂情景劇《蝸牛與黃鸝鳥》劇本
- 2022年06月廣東揭陽市惠來縣退役軍人事務局公開招聘基層退役軍人專職服務人員3人筆試題庫含答案解析
- 華東師大版七年級數學上冊教學課件
- 國開電大本科《管理英語3》機考總題庫
- 中國航天(航天科普知識)PPT
- YS/T 670-2008空調器連接用保溫銅管
- GB/T 5231-2001加工銅及銅合金化學成分和產品形狀
- GB/T 36361-2018LED加速壽命試驗方法
- GB/T 27806-2011環氧瀝青防腐涂料
評論
0/150
提交評論