




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《JAVA程序設計》課程1、JDBC的概述
匯報提綱2、JDBC標準API3、JDBC數據庫連接Java程序設計4、JDBC數據庫操作5、DAO模式《JAVA程序設計》課程學習目標1、了解JDBC技術;
2、掌握JDBC標準API;
3、熟悉JDBC連接數據庫的操作步驟;
4、熟練運用JDBC技術操作數據庫;
5、理解DAO模式實現分層開發。《JAVA程序設計》課程
7.1JDBC連接7.1.1項目(7-1)描述安裝和配置一種數據庫,在Eclipse下完成數據庫的連接測試。7.1.1項目知識準備(1)JDBC概述之前所學的案例,都是通過控制臺打印輸出,數據無法保存,每次運行程序都需要重新輸入,在JAVA中如何實現把各種數據存入數據庫,從而長久保存。JAVA是通過JDBC技術實現對各種數據庫訪問的,JDBC是應用程序與各種數據庫之間進行對話的媒介。JDBC是JAVA數據庫連接(JAVADATABASECONNECTIVITY)技術的簡稱,由一組使用JAVA語言編寫的類和接口組成,使得JAVA程序能夠連接各種常用的數據庫。Sun公司提供了JDBC的接口規范—JDBCAPI,而數據庫廠商或第三方中間件廠商根據該接口規范提供針對不同數據庫的具體實現—JDBC驅動。(2)JDBC連接數據庫的APIJDBC提供了標準的API,主要包括DriverManager、Connection、Statement、PreparedStatement、CallableStatement和ResultSet,涉及到數據庫連接API主要包括DriverManager和Connection。《JAVA程序設計》課程
7.1JDBC連接DriverManager是用于管理JDBC驅動程序的接口。這個接口的主要用途是通過getConnection()方法來取得Connection對象的引用。常用方法如下:方法名方法說明publicstaticsynchronizedConnectiongetConnection(Stringurl,Stringuser,Stringpassword)throwsSQLException獲得url對應數據庫的一個連接publicstaticvoidsetLoginTimeout(intseconds)設置要進行數據庫登陸時驅動程序等待的遲疑時間《JAVA程序設計》課程
7.1JDBC連接Connection對象是通過DriverManager.getConnection()方法取得的,表示驅動程序提供的與數據庫連接的對話。常用方法如下。方法名方法說明StatementcreateStatement()throwsSQLException返回一個Statement對象PreparedStatementprepareStatement(Stringsql)throwsSQLException返回一個PreparedStatement對象,并能把SQL語句提交到數據庫進行預編譯CallableStatementprepareCall(Stringsql)返回一個CallableStatement對象,該對象能夠處理存儲過程voidsetAutoCommit()throwsSQLException設置事務提交的模式voidcommit()throwsSQLException進行當前業務開始以來的所有改變voidrollback()throwsSQLException放棄當前業務開始以來的所有改變《JAVA程序設計》課程
7.1JDBC連接(3)JDBC連接數據庫的步驟1.導入JDBC包:根據不同的數據庫加載不同的驅動,本章使用SQLServer數據庫,jar包已經放在本章節的目錄下,適用是請在本項目中添加該jar包,然后使用import語句引入。使用標準的JDBC包,可以執行選擇,插入,更新和SQL表中刪除數據.importjava.docx2.注冊JDBC驅動程序使用它之前,必須注冊驅動程序。可以通過Class.forName()完成注冊。注冊一個驅動程序最常用的方法是使用Java的Class.forName()方法來動態加載驅動程序的類文件到內存中,它會自動將其注冊。下面的示例使用Class.forName()來注冊SQLServer驅動程序:importjava.docx可以使用getInstance()方法來解決不兼容的JVM,但要編寫了兩個額外的例外情況如下:importjava.docx《JAVA程序設計》課程
7.1JDBC連接3.定義指向數據庫的URL當加載完驅動程序,可以使用DriverManager.getConnection()方法獲取連接。三個DriverManager.getConnection()方法:getConnection(Stringurl)getConnection(Stringurl,Propertiesprop)getConnection(Stringurl,Stringuser,Stringpassword)獲取連接需要獲取到指向數據庫的URL,即數據庫地址。下表列出了下來流行的JDBC驅動程序名和數據庫的URL。RDBMSJDBC驅動程序的名稱URL格式MySQLcom.mysql.jdbc.Driverjdbc:mysql://hostname/databaseNameORACLEoracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@hostname:portNumber:databaseNameSQLservercom.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://hostname:port;databaseName
《JAVA程序設計》課程
7.1JDBC連接4.創建連接對象通過DriverManager.getConnection()方法來創建一個連接對象。getConnection()最常用形式要求傳遞一個數據庫URL,數據庫用戶名和密碼。
importjava.docx5.關閉JDBC連接在JDBC程序結束后,要求關閉所有的連接對象。如果忘了,Java垃圾收集器會關閉連接。依托垃圾收集,是非常差的編程習慣。為了確保連接被關閉,可以在代碼中的finally塊中執行關閉。不管是否有異常,finally塊都會執行,這樣確保執行到關閉。importjava.docx《JAVA程序設計》課程
7.1JDBC連接7.1.3項目實施(1)通過分析題目可以得出以下信息:①創建測試數據庫,并設置數據庫的用戶名和密碼;②項目中加載合適的驅動程序,注冊驅動,連接數據庫,關閉數據庫。(2)編碼:importjava.docx(3)調試運行,顯示結果該程序的部分運行結果如圖7.1所示:圖7.1數據庫連接運行結果《JAVA程序設計》課程
7.1JDBC連接7.1.4能力拓展1.請寫出通過JDBC連接數據庫的步驟。2.請自己創建一個數據庫,并編寫程序測試連接是否成功。《JAVA程序設計》課程7.2數據庫的增刪改查7.2.1項目(7-2)描述創建用戶表,包括用戶名和用戶密碼,實現對用戶表的插入、刪除、查詢和修改操作。7.2.2項目知識準備(1)JDBC操作數據庫的API在完成數據庫的連接后,需要對數據庫進行操作,主要包括Statement、ResultSet和PreparedStatement的使用。1.StatementStatement是向數據庫提交SQL語句并返回相應結果的工具。語句可以是SQL插入、刪除、查詢和修改。常用方法如下。方法名方法說明ResultSetexecuteQuery(Stringsql)throwsSQLException執行一個查詢語句并將返回結果集存于ResultSet對象中intexecuteUpdate(Stringsql)throwsSQLException執行一個修改或插入語句,并返回發生改變的記錄條數Booleanexecute(Stringsql)throwsSQLException執行一個修改或插入語句,返回的布爾值表示語句是否執行成功7.2數據庫的增刪改查《JAVA程序設計》課程
使用Statement方法時,語句可能返回或不返回ResultSet對象。如果提交的是查詢語句,通常使用executeQuery(Stringsql)方法;如果提交的是修改或插入語句,通常使用executeUpdate(Stringsql)方法。2.ResultSetResultSet接口定義訪問執行Statement產生的結果集的方法。ResultSet結果集可以按照名稱或列名(從1到n)訪問,常用方法如下:方法名方法說明Booleannext()throwsSQLException將ResultSet定位到下一行。ResultSet定位從結果集第一行開始Booleannext()throwsSQLException將ResultSet定位到下一行。ResultSet定位從結果集第一行開始ResultSetMetaDatagetMetaData()throwsSQLException返回當前結果集說明的對象;列號、每列類型和結果屬性voidclose()throwsSQLException釋放ResultSet對象資源Booleanabsolute(introw)throwsSQLException將結果集移動到指定行,如果row為負數,則防在倒數第幾行《JAVA程序設計》課程
7.2數據庫的增刪改查ResultSet類的getXXX方法可以從某一數據項中獲得結果,其中XXX是JDBC中的Java數據類型,如getInt、getString、getData等。getXXX方法需要指定要檢索的數據項:有兩種指定數據項的方法:一種是以一個int值作為數據項的索引,另一種是以一個String對象作為數據項名來索引。importjava.docx3.PreparedStatementPreparedStatement接口繼承Statement接口。當一條SQL語句需要稍加變化而反復執行時,通常使用PreparedStatement。preparedStatement對象上的查詢語句和更新語句都可以設置輸入參數。在建立PreparedStatement對象后,并且在SQL語句執行之前,使用setXXX方法給參數賦值,然后使用executeQuery或executeUpdate來執行這個SQL語句-每一次執行SQL語句之前,可以給參數重新賦值。Connection對象的prepareStatement()方法將SQL語句作為其參數.importjava.docx注:”?”符號是一個運行時可被INPUT參數替代的占位符。《JAVA程序設計》課程
7.2數據庫的增刪改查setXXX方法用于給相應的輸人參數賦值,其中XXX是JDBC的數據類型,如:int、String等。第一個參數的位置為1;第二個參數的位置為2;依次類推;setXXX的第一個參數是參數的位置,第二個參數是要傳遞的值,隨XXX類型的不同而不同。(2)數據庫的操作importjava.docx7.2.3項目實施(1)通過分析題目可以得出以下信息:①在6-1項目基礎上,創建表userTable,包括userID,username,userPassword三個字段;②利用JDBC的API完成數據庫的操作。(2)編碼:importjava.docx(3)調試運行,顯示結果《JAVA程序設計》課程
7.2數據庫的增刪改查該程序的部分運行結果如圖7.2所示:圖7.2執行插入操作后的運行結果7.2.4能力拓展(1)Statement和PreparedStatement的區別請畫出try…catch…finally執行的流程圖,并考慮完所有情況。《JAVA程序設計》課程
7.2數據庫的增刪改查(2)編程完成項目7-2的其它操作,如刪除、更新等,并使用PreparedStatement。《JAVA程序設計》課程7.3數據庫操作的分層處理7.3.1項目(7-3)描述將案例7-2的代碼實現分層處理,實現用戶的注冊和登錄功能。7.3.2項目知識準備(1)數據持久化持久化是將程序中的數據在瞬時狀態和持久狀態間轉換的機制。JDBC就是一種持久化機制,將大腦所思考的事情記錄在本子上,這個過程就是持久化。持久化的主要方式,主要包括將數據保存到數據庫、普通文件和XML文件中。主要的持久化操作包括保存、刪除、修改、讀取和查找。前面的例子是直接對持久化數據的訪問,業務邏輯和對持久化數據的訪問寫在一個文件里,邏輯不是很清晰。(2)Dao模式Dao,就是DateAccessObeject(數據存取對象),位于業務邏輯和持久化數據之間實現對持久化數據的訪問。Dao模式提供了訪問關系數據庫系統所需操作的接口,將數據訪問和業務邏輯分離,對上層提供面向對象的數據訪問接口。《JAVA程序設計》課程
7.3數據庫操作的分層處理Dao模式隔離了數據訪問代碼和業務邏輯代碼,降低了耦合性,效率更高,提高了可復用性;隔離了不同數據庫的實現,如果底層數據庫變化,只需要增加數據訪問接口的實現類即可,降低了代碼的耦合性,提高了代碼的課擴展性和系統的可移值性。Dao模式的組成:DAO接口,把對數據庫的所有操作定義成一個抽象方法,可以提供多個實現;DAO實現類,針對不同數據庫給出DAO接口定義方法的具體實現;實體類,用于存放于傳輸對象數據;數據庫連接和關閉工具類,避免了數據庫連接和關閉代碼的重復使用,方便修改。(3)分層開發的步驟借用DAO模式實現分層開發,步驟如下:1.創建實體在分層結構中,不同層之間通過實體類來傳輸數據,把相關信息使用實體類封裝后,在程序中把實體類作為方法的輸入參數或返回結果,實現
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廈門大學《建筑功能材料A》2023-2024學年第二學期期末試卷
- 五邑大學《生物檢測技術》2023-2024學年第二學期期末試卷
- 重慶對外經貿學院《消費者行為學》2023-2024學年第二學期期末試卷
- 環保項目環境影響識別與評價考核試卷
- 碳素材料在核燃料處理中的應用考核試卷
- 燈具配件物流與倉儲管理考核試卷
- 石油開采業的行業協會與組織合作考核試卷
- 玉米加工技術創新與知識產權保護考核試卷
- 智能驅蚊手環驅蚊效果考核試卷
- 林業副產品在化學品制造中的應用考核試卷
- 2025年鄭州鐵路職業技術學院單招職業適應性測試題庫及參考答案1套
- 樹木移植的施工方案
- 四川大學自主招生個人陳述語言風格范文
- 5.2《稻》教案-【中職專用】高二語文同步教學(高教版2023·拓展模塊下冊)
- 人工智能在智能安防中的應用
- ORP-數值對反滲透裝置的影響
- 小王子英文介紹課件
- 法律服務行業智能合同審查方案
- 2025南水北調東線山東干線限責任公司人才招聘30人高頻重點提升(共500題)附帶答案詳解
- 公共管理學筆記
- 地鐵隧道應力釋放孔設計方案
評論
0/150
提交評論