第17章 實現(xiàn)數(shù)據(jù)庫編程_第1頁
第17章 實現(xiàn)數(shù)據(jù)庫編程_第2頁
第17章 實現(xiàn)數(shù)據(jù)庫編程_第3頁
第17章 實現(xiàn)數(shù)據(jù)庫編程_第4頁
第17章 實現(xiàn)數(shù)據(jù)庫編程_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第17章實現(xiàn)數(shù)據(jù)庫編程主講:胡伏湘復習提問1、什么是URL,由哪些部分組成?2、TCP與UDP協(xié)議有什么不同?3、Socket有什么特點?4、什么是Datagram?預習與提問1、數(shù)據(jù)庫的最基本組成成分是什么?2、一個表由哪些部分組成?3、在SQLSERVER中用什么命令定義表的結構?4、在SQLSERVER中,輸入記錄的命令是什么?本章提要主要知識點:JDBC的工作過程;SQLSever2005/2008forJDBC的安裝與配置;JDBC的工作原理;JDBC應用程序的開發(fā)過程;java.sql包的用法;JDBC數(shù)據(jù)庫應用學習目標:理解JDBC的工作原理,掌握JAVA與SQLSERVER數(shù)據(jù)庫的連接方法,能夠運用相關的類和包編寫數(shù)據(jù)庫管理軟件。17.1認識JDBC17.1.1JDBC概述1、什么是JDBCJDBC-JavaDataBaseConnection,JAVA數(shù)據(jù)庫連接的API(ApplicationProgarmInterface-應用程序接口),它允許JAVA應用程序訪問任何形式的表格化數(shù)據(jù),包括SQLServer和ACCESS、Excel等。JDBC的主要特點:與任何關系數(shù)據(jù)庫協(xié)同工作的原理相同,可以適用天任何關系數(shù)據(jù)庫。17.1認識JDBC2、JDBC的工作過程與數(shù)據(jù)源建立連接:通過DriverManager類建立與數(shù)據(jù)源的連接,這個連接作為數(shù)據(jù)操作的起點,也是連接會話事務操作的基礎;向數(shù)據(jù)庫發(fā)出SQL命令:通過Statement類或者PreparedStatement類向數(shù)據(jù)源發(fā)送SQL命令,然后再調用類中的execute方法來執(zhí)行SQL命令;處理數(shù)據(jù)源返回的結果:對于DDL/DML操作,返回被修改的記錄數(shù),對于查詢操作,返回結果集ResultSet,通過遍歷結果集可以獲得所需的查詢結果。17.1認識JDBC3、JDBC驅動程序的四種類型JDBC-ODBC橋+ODBC(開放數(shù)據(jù)庫連接):通過ODBC驅動程序提供JDBC訪問,缺點是必須加載到目標機器上,并且ODBC-JDBC轉換影響效率。本地API部分JAVA驅動程序:使用本地API與數(shù)據(jù)源通信,使用JAVA方法調用數(shù)據(jù)操作的API函數(shù)。缺點是必須在目標機器上存放本地代碼,不同廠商提供的驅動程序可能不一致;17.1認識JDBC3、JDBC驅動程序的四種類型JDBC-Net純JAVA驅動程序:將JDBC調用轉化為DBMS獨立網(wǎng)絡協(xié)議,然后由服務器轉化為DBMS協(xié)議。缺點是協(xié)議轉換困難。本地協(xié)議的純JAVA驅動程序:全部是JAVA驅動程序,允許從JAVA客房端直接調用數(shù)據(jù)庫服務器,不需要對客戶端進行配置,只要注冊相應的驅動程序即可,同時它全面繼承JAVA的跨平臺性和安全性,是最理想的驅動程序類型。17.1認識JDBC4、JDBC的兩個概念連接池:建立數(shù)據(jù)庫連接需要較多的時間和資源,采用連接池方法后,可以保持若干已經(jīng)建好的連接,需要進行數(shù)據(jù)通信時可以直接使用這些連接,以節(jié)省時間和資源。事務操作:事務transcation,是對一個處理的全部操作過程,當所有步驟全部完成后,這個處理才算結束,否則必須回滾Rollback,即一旦某一步驟失敗,則之前所有步驟都要撤銷。17.1認識JDBC17.1.2SQLSever2005/2008forJDBC的安裝以SQLServer2005為例,其安裝過程如下:1.必備軟件和系統(tǒng)需求安裝SQLServer2005forJDBC必須準備以下軟件:(1)數(shù)據(jù)庫:SQLServer2005。(2)SQLServer2005補?。篠QLServer2005SP3以上,可以從微軟公司的網(wǎng)站上免費下載得到。(3)驅動程序:SQLServer2005DriverforJDBC

(4)JDK:JDK1.5以上,此處采用JDK1.717.1認識JDBC2.軟件安裝過程(1)確認SQLServer2005和JDK可正常運行。(2)安裝SQLServer2005補丁SP3。(3)安裝SQLServerDriverforJDBC;默認的安裝路徑是:C:\ProgramFiles\MicrosoftSQLServerJDBCDriver2.0

17.1認識JDBC3、配置(1)修改登錄方式:將SQLServer2005的身份驗證模式改為SQLServer身份驗證,要求登錄名屬于sysadmin和public角色。(2)配置SQLServer2005網(wǎng)絡(3)設置SQLServer2005的端口號為1433(4)在JDBC運行時,必須保證SQLServer服務(即MSSQLSERVER)處于啟動狀態(tài),但工作界面不一定要打開。17.2實現(xiàn)JDBC數(shù)據(jù)庫編程17.2.1JDBC的工作原理JDBC是支持基本SQL數(shù)據(jù)庫功能的一系列抽象的接口,最重要的接口包括:Java.sql.DriverManager(處理驅動的調入并且對產生新的數(shù)據(jù)庫連接提供支持)Java.sql.Connection(代表對特定數(shù)據(jù)庫的連接)Java.sql.Statement(代表一個特定的容器,對一個特定的數(shù)據(jù)庫執(zhí)行SQL語句)Java.sql.ResultSet(控制對一個特定語句的行數(shù)據(jù)的存?。?7.2實現(xiàn)JDBC數(shù)據(jù)庫編程17.2.2JDBC應用程序的開發(fā)過程17.2實現(xiàn)JDBC數(shù)據(jù)庫編程17.2.2JDBC應用程序的開發(fā)過程1、裝載驅動程序通過JDBC來連接關系數(shù)據(jù)庫,應用程序必須采取的第一個步驟是加載合適的JDBC驅動程序,并獲得一個與該數(shù)據(jù)庫的連接。用JDBC的DriverManager類實現(xiàn)。此類實現(xiàn)了java.sql.Driver接口。加載Driver接口并把它注冊給DriverManager類有兩種方法:(1)使用Class.forName()方法,一般是:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");(2)標識jdbc.drivers系統(tǒng)屬性內的Driver類17.2實現(xiàn)JDBC數(shù)據(jù)庫編程2、建立連接實現(xiàn)Connection接口的一個類對象(即一個Connection對象)代表一個與某個具體數(shù)據(jù)源的連接。Connection對象實際上是建立一個上下文環(huán)境,以便程序員能在它里面創(chuàng)建并執(zhí)行SQl命令。ConnectiondatabaseConnection=DriverManager.getConnection(sourceURL);如:con=java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);這里的url一般是如下格式:"jdbc:microsoft:sqlserver://"+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod17.2實現(xiàn)JDBC數(shù)據(jù)庫編程3、語句與結果集Statement接口提供了執(zhí)行SQL語句和檢索結構的一種方法。由于Statement是一個接口,所以程序員不能直接創(chuàng)建一個Statement對象。通常創(chuàng)建這個對象的方法是:Statementstatement=connection.createStatement();當建成一個Statement對象之后,它提供一個工作空間供用戶創(chuàng)建SQL查詢,執(zhí)行該查詢,以及檢索返回的任何結果,可以通過調用該Statement對象的下列執(zhí)行方法來執(zhí)行SQL查詢:executeQuery()――用于在單個ResultSet對象的數(shù)據(jù)庫中檢索出數(shù)據(jù)的SQL語句。executeUpdate()――執(zhí)行不返回ResultSet對象的查詢。它的返回值是一個整數(shù)(稱為更新計數(shù)),它給出受到影響的行數(shù)。execute()――執(zhí)行返回多個結果集,多個更新計數(shù)值或這兩者組合的語句。

17.2實現(xiàn)JDBC數(shù)據(jù)庫編程3、語句與結果集Statement接口提供了執(zhí)行SQL語句和檢索結構的一種方法。由于Statement是一個接口,所以程序員不能直接創(chuàng)建一個Statement對象。通常創(chuàng)建這個對象的方法是:Statementstatement=connection.createStatement();當建成一個Statement對象之后,它提供一個工作空間供用戶創(chuàng)建SQL查詢,執(zhí)行該查詢,以及檢索返回的任何結果,可以通過調用該Statement對象的下列執(zhí)行方法來執(zhí)行SQL查詢:executeQuery()――用于在單個ResultSet對象的數(shù)據(jù)庫中檢索出數(shù)據(jù)的SQL語句。executeUpdate()――執(zhí)行不返回ResultSet對象的查詢。它的返回值是一個整數(shù)(稱為更新計數(shù)),它給出受到影響的行數(shù)。execute()――執(zhí)行返回多個結果集,多個更新計數(shù)值或這兩者組合的語句。

17.2實現(xiàn)JDBC數(shù)據(jù)庫編程4、應用舉例

(1)下面的語句建立名為cx的Statement對象:

Statementcx=con.creatStatement();在Statement對象上,可以使用execQuery方法執(zhí)行查詢語句。execQuery的參數(shù)是一個String對象,即一個SQL的Select語句。它的返回值是一個ResultSet類的對象。ResultSetresult=cx.execQuery(“SELECT*FROMA”)

該語句將在result中返回表A中的所有行。對Result對象進處理后,才能將查詢結果顯示給用戶。Result對象包括一個由查詢語句返回的一個表,這個表中包含所有的查詢結果。對Result對象的處理必須逐行,而對每一行中的各個列,可以按任何順序進行處理。Result類的getXXX方法可將結果集中的SQL數(shù)據(jù)類型轉換為Java數(shù)據(jù)類型。

17.2實現(xiàn)JDBC數(shù)據(jù)庫編程4、應用舉例

(2)對數(shù)據(jù)庫中的記錄可以進行修改、插入和刪除操作,分別對應于SQL的Update、Insert和Delete操作。同Select語句類似,executeUpdate方法的參數(shù)是一個String對象,即要執(zhí)行的SQL語句。它返回一個整數(shù)。對于修改、插入和刪除操作,返回的是操作記錄的行數(shù),對于不返回值的SQL語句,executeUpdate方法返回零。例:cx.executeUpdate=(“UPDATEASETCode=5WHEREDEPARTMENT=‘COMPUTER’”)

17.2實現(xiàn)JDBC數(shù)據(jù)庫編程17.2.3java.sql軟件包的用法1、主要接口:軟件包java.sql提供使用JavaTM編程語言訪問并處理存儲在數(shù)據(jù)源(通常是一個關系數(shù)據(jù)庫)中的數(shù)據(jù)的API。Java(TM)是Sun公司的商標,標識了一系列在獨立的和網(wǎng)絡化的環(huán)境中創(chuàng)建并安全的運行程序的技術。Array:SQL類型ARRAY,在Java編程語言中的映射關系。CallableStatement:用于執(zhí)行SQL存儲過程的接口。Connection:與特定數(shù)據(jù)庫的連接(會話)。DatabaseMetaData關于數(shù)據(jù)庫的整體綜合信息。Driver:每個驅動程序類必須實現(xiàn)的接口。ParameterMetaData可用于獲取關于PreparedStatement對象中參數(shù)的類型和屬性信息的對象。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論