




已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第十講 訪問數(shù)據(jù)庫,java,數(shù)據(jù)庫,學習目標 1. 掌握:JDBC應用程序接口的使用 2. 掌握:JDBC技術(shù)訪問數(shù)據(jù)庫的方法 3. 了解:JDBC技術(shù) 重點 掌握:建立數(shù)據(jù)庫的連接的方法 難點 理解:JDBC的工作原理,本講要點,軟件的開發(fā)經(jīng)常會需要訪問數(shù)據(jù)庫。數(shù)據(jù)庫的標準是多樣的,ODBC(開放式數(shù)據(jù)庫連接) 是一個編程接口,它允許程序使用SQL(結(jié)構(gòu) 化查詢語言)訪問DBMS(數(shù)據(jù)庫管理系統(tǒng)) 中的數(shù)據(jù)。 Sun公司認為ODBC難以掌握,使 用復雜并且在安全性方面存在問題。 因此Java語言使用JDBC(Java DataBase Connectivity)技術(shù)進行數(shù)據(jù)庫的訪問。,10.1 概述,JDBC是Java 數(shù)據(jù)庫連接(Java Data Base Connectivity)技術(shù)的簡稱。是Java同數(shù)據(jù)連接的一種標準,是一種用于執(zhí)行SQL語句的Java API, 它由一組用 Java 編程語言編寫的類和接 口組成。 JDBC 為數(shù)據(jù)庫開發(fā)人員提供了一組標準的API,使他們能夠用純Java API 來編寫數(shù)據(jù) 庫應用程序。,10.1.1 JDBC簡介,JDBC驅(qū)動程序管理器又可以用兩種方式和最終 的數(shù)據(jù)庫進行通信: 一種是使用JDBCODBC橋接驅(qū)動程序的間接方式; 另一種是使用JDBC驅(qū)動程序的直接方式。 為了訪問數(shù)據(jù)庫,要首先安裝JDBC API,數(shù)據(jù) 庫驅(qū)動程序和DBMS(數(shù)據(jù)庫管理系統(tǒng))。 JDK自帶有JDBC API,安裝JDK后就擁有JDBC API了,10.1.1 JDBC簡介,(1)JDBCODBC橋接驅(qū)動程序 正確安裝完JDK后,即已自動獲得了Sun公司提供的 JDBCODBC橋接驅(qū)動程序。 (2)ODBC驅(qū)動程序。 如果機器上還沒有安裝ODBC,請根據(jù)ODBC驅(qū)動程序供應商提供的信息安裝并配置ODBC驅(qū)動程序。 (3)訪問特定數(shù)據(jù)庫的JDBC驅(qū)動程序。 如果需要訪問MS SQL Server 2000上的數(shù)據(jù)庫,下載并安裝MS SQL Server 2000的JDBC驅(qū)動程序。,1.數(shù)據(jù)庫驅(qū)動程序包括:,軟件開發(fā)環(huán)境的搭建:,1、安裝SQL Server 2000; 2、安裝SQL Server 2000 的補丁程序,從下載SQLsp4.rar,安裝該補丁程序即可; 3、從下載SQL Server 2000 For JDBC的驅(qū)動程序,jdbcsetup.exe,安裝即可,默認的安裝目錄為:c:Program FilesMicrosoft SQL Server 2000 Driver for JDBC,根據(jù)需要,選擇性地安裝DBMS。 例如,如果需要和一個運行在MS SQL Server 2000上的數(shù)據(jù)庫建立連接,那么首先就需要在本機或是其他機器上安裝一個MS SQL Server 2000的DBMS。 注意:ODBC和DBMS的安裝和配置本身就是 技術(shù)性很強的工作。如果在安裝和配置過程中 存在困難,最好參考相關(guān)的技術(shù)文擋或是求助 這方面的專家。,2.DBMS(數(shù)據(jù)庫管理系統(tǒng)),JDBC 訪問數(shù)據(jù)庫的流程分為三步: (1)與數(shù)據(jù)庫建立連接。 (2)向數(shù)據(jù)庫發(fā)送 SQL 語句。 (3)處理數(shù)據(jù)庫返回的結(jié)果。,2.DBMS(數(shù)據(jù)庫管理系統(tǒng)),(1)java.sql.DriverManager,用來裝載驅(qū)動程序并為創(chuàng)建新數(shù)據(jù)庫連接提供支持。 (2)java.sql.Connection,完成對某一個指定數(shù)據(jù)的連接功能。 (3)java.sql.Statement,在一個給定的連接中作為SQL執(zhí)行聲明的容器。 (4)java.sql.ResultSet,用來控制對一個特定記錄集數(shù)據(jù)的存取。,10.2 JDBC應用程序接口,建立一個數(shù)據(jù)庫連接分兩步:載入驅(qū)動程序和建立連接。 1載入驅(qū)動程序 一般形式為: Class.forName(“驅(qū)動程序名稱”); 例如:如用JDBCODBC橋接驅(qū)動程序,驅(qū)動程序名稱為“sun.jdbc.odbc.JdbcOdbcDriver”,則語句: Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); 2建立連接 Connection 對象代表與數(shù)據(jù)庫的連接。連接過程包括所執(zhí)行的 SQL 語句和在該連接上所返回的結(jié)果??膳c單個數(shù)據(jù)庫有一個或多個連接,或與許多數(shù)據(jù)庫有連接。,10.2.1 數(shù)據(jù)庫連接,驅(qū)動程序管理器(DriverManager) ,作用于用戶和驅(qū)動程序之間。在數(shù)據(jù)庫和相應驅(qū)動程序之間建立連接。 一般形式為: Connection con=DriverManager.getConnection (url,“用戶名“,“密碼”); 參數(shù)url由三部分組成,各部分用冒號分隔,如: jdbc: :驅(qū)動程序名或數(shù)據(jù)庫連接機制的名稱。 子協(xié)議名的典型示例是 “odbc“。 :是本地數(shù)據(jù)資源。 不同驅(qū)動程序,用驅(qū)動程序名稱以及子協(xié)議名稱不同。如: Connection con=DriverManagergetConnection = (“jdbc:odbc:Book“,“admin“,“123“);,10.2.1 數(shù)據(jù)庫連接,1創(chuàng)建Statement對象 建立了到特定數(shù)據(jù)庫的連接后,就可向數(shù)據(jù)庫發(fā)送SQL語句,Statement對象用Connection的方法createStatement創(chuàng)建,代碼如下: Statement student=con. CreateStatement(); 2使用Statement對象執(zhí)行語句 JDBC提供了3種執(zhí)行SQL語句的方法:executeQuery 、executeUpdate、execute。使用哪一個方法由SQL語句所產(chǎn)生的內(nèi)容決定。,10.2.2 向數(shù)據(jù)庫發(fā)送SQL語句,(1)executeQuery方法 用于執(zhí)行產(chǎn)生單個結(jié)果集的語句。如select。 (2)executeUpdate方法 用于執(zhí)行insert、update、delete、SQL(數(shù)據(jù) 定義)語句。ExecuteUpdate的返回值是一個整數(shù),用于表示受影響的行數(shù)。 (3)execute方法 用于執(zhí)行返回多個結(jié)果集,多個更新計數(shù)或二者組合的語句。,10.2.2 向數(shù)據(jù)庫發(fā)送SQL語句,ResultSet接口用于獲取執(zhí)行SQL語句返回的結(jié)果,結(jié)果集是一個表,它的包含了符合SQL語句條件的所有行。常用方法如下: 記錄定義方法包括:first()、next()、previous()、last()、getXX()方法。 (1)first():使記錄指針指向第一行。 (2)next():使記錄指針下移一行。 (3)previous():使記錄指針上移一行。 (4)last():使記錄指針指向最且一行。 (5)getXX():用于獲取結(jié)果集中指定列的值。,10.2.3 數(shù)據(jù)結(jié)果集,對數(shù)據(jù)庫操作完成后,應該將與數(shù)據(jù)庫的連接關(guān)閉。關(guān)閉連接使用的語句是close()。 一般形式為:連接變量.close() 例如: 要關(guān)閉前面建立的連接con,使用以下語句: con.close(),10.2.4 關(guān)閉數(shù)據(jù)庫連接,數(shù)據(jù)庫應用程序ODBC在使用ODBC管理數(shù)據(jù)庫時,首先需要做的工作是在ODBC管理器中對數(shù)據(jù)庫進行登記注冊和連接測試,該項工作就是配置ODBC數(shù)據(jù)源,數(shù)據(jù)源即數(shù)據(jù)庫的位置、數(shù)據(jù)庫的類型以及ODBC驅(qū)動程序等信息的集合。 10.3.1 建立數(shù)據(jù)庫 本節(jié)以Windows2000操作系統(tǒng)和Microsoft Access2000數(shù)據(jù)庫管理系統(tǒng)為例,說明數(shù)據(jù)庫的配置方法。,10.3 配置ODBC數(shù)據(jù)源,數(shù)據(jù)源是連接數(shù)據(jù)庫的接口,在Access2000中建立數(shù)據(jù)庫myDB.mdb,其操作步驟如下: (1)單擊【開始】按鈕,選擇“程序Microsoft Access”菜單項,進入Access窗口。 (2)單擊【文件】【新建】,出現(xiàn)“新建”對話框中,如圖10-2所示。 (3)單擊【常用】,選擇“數(shù)據(jù)庫”,再單擊【確定】,出現(xiàn)“文件新建數(shù)據(jù)庫”對話框。 (4)在“保存位置”的下拉列表框中選擇數(shù)據(jù)庫的存放位置,如“d:java”; 在“文件名”文本框中輸入:myDB。 (5)單擊【創(chuàng)建】按鈕,出現(xiàn)數(shù)據(jù)庫窗口,如下圖,1.建立數(shù)據(jù)庫,圖10-3 數(shù)據(jù)庫窗口,1.建立數(shù)據(jù)庫,表由結(jié)構(gòu)和記錄兩部分組成。 結(jié)構(gòu)指明表中每列的名稱、數(shù)據(jù)類型和寬度。 記錄是表中所包含的行的數(shù)據(jù)。 (1)在數(shù)據(jù)庫窗口中, 選擇“表”和使用“使用 設計器創(chuàng)建表”,并單擊 【新建】按鈕,出現(xiàn)“新 建表”對話框, 如圖10-4所示。,2. 建立表的結(jié)構(gòu),(2)輸入字段名、類型、長度,單擊【文件】【保存】,出現(xiàn)“另存為”對話框,如表8-6所示。表名為:employee。 (3)單擊【確定】按鈕,回到數(shù)據(jù)庫窗口,出現(xiàn)所建立的表employee條目。,2. 建立表的結(jié)構(gòu),在數(shù)據(jù)庫窗口中,選擇表名,單擊【打開】按鈕,出現(xiàn)表窗口,輸入3條記錄如圖10-7所示。輸入完畢后,單擊【保存】按鈕。,3. 輸入記錄,現(xiàn)在已經(jīng)有一個數(shù)據(jù)庫名為myDB.mdb,存在d:java目錄下。為數(shù)據(jù)庫myDB.mdb在ODBC管理器中配置數(shù)據(jù)源的步驟如下: (1)打開Windows中的控制板面。 (2)雙擊“管理工具”圖標,出現(xiàn)管理工具窗口。在該窗口中雙擊“數(shù)據(jù)源(ODBC)”圖標,出現(xiàn)ODBC數(shù)據(jù)源對話框。選擇“系統(tǒng)DSN”選項卡,如圖10-8所示。圖10-8 “系統(tǒng)DSN”選項卡圖10-9 “創(chuàng)建數(shù)據(jù)源”對話框 (3)單擊【添加】按鈕,出現(xiàn)“創(chuàng)建新數(shù)據(jù)源”對話框,如圖10-9所示。,10.3.2 建立數(shù)據(jù)源,(4)其中選擇Microsoft Access Driver(*.mdb),單擊【完成】按鈕。出現(xiàn)“Access安裝”對話框,如圖10-10所示。在“數(shù)據(jù)源名”文本框中輸入:myDB;“說明” 文本框中輸入:教工數(shù)據(jù)庫。 (5)單擊【選擇】按鈕,出現(xiàn)如圖10-11所示“選擇數(shù)據(jù)庫”對話框,目錄選擇d :java,數(shù)據(jù)庫選擇myDB.mdb。單擊【確定】按鈕,回到“ODBC Microsoft Access安裝”對話框。 (6)如果設置數(shù)據(jù)庫的用戶名和密碼,單擊【高級】按鈕,出現(xiàn)如圖10-12所示“設置高級選項”對話框。登錄名稱為ma,密碼為123。,10.3.2 建立數(shù)據(jù)源,圖10-10 ODBC安裝對話框圖10-11 “選擇數(shù)據(jù)庫”對話框 (7)單擊【確定】按鈕,完成數(shù)據(jù)源的建立。最后,關(guān)閉控制面板。,10.3.2 建立數(shù)據(jù)源,圖10-12 “設置高級選項”對話框,圖10-12 “設置高級選項”對話框,10.3.2 建立數(shù)據(jù)源,【例10-1】源程序Query.java,是一個簡單的例子,利用JDBC-ODBC橋驅(qū)動程序,訪問Access數(shù)據(jù)庫myDB.mdb,顯示表中所有職員的編號、姓名、性別、工資。 import java.sql.*; class Query public static void main(String args) try /加載數(shù)據(jù)庫驅(qū)動程序 Class.forName(“sun.jdbc.Odbc.JdbcodbcDriver“); ,10.3.2 建立數(shù)據(jù)源,catch(ClassNotFoundException ce) System.out.println(“SQLExceptiOn:“+ce.getMessage(); try /與數(shù)據(jù)庫建立連接 Connection con=DriverManager.getConnection(“jdbc:odbc:myDB“); Statement stmt=con.createStatement(); /創(chuàng)建Statement對象 /發(fā)送SQL語言select * from employee,生成學生記錄 ResultSet rs=stmt.executeQuery(“select * from employee“);,while(rs.next() System.out.println(“編號“+rs.getString(“num“) +“t姓名“+rs.getString(“name“) +“t性別“+rs.getString(“sex“) +“t工資“+rs.getString(“salary“); rs.close(); /關(guān)閉數(shù)據(jù)庫 stmt.close(); catch (SQLException e) System.out.println(“SQLException:“+e.getMessage(); ,【程序分析】 注意:運行該程序,首先利用Access2000設計的數(shù)據(jù)庫,并建立一數(shù)據(jù)表,表名為employee,含有數(shù)據(jù)項num,name,sex,salary。其次才能運行本程序。 第1行:引入包java.sql中的所有類, 第9行:加載JDBC-ODBC橋驅(qū)動程序。 第18行:連接數(shù)據(jù)庫myDB,ma為用戶標識符,123為用戶口令。 第19行:stmt為SQL語句變量。 第21行:對表employee中所有職員進行查詢,結(jié)果存放在對象rs中。,更新操作的實現(xiàn) UPDATE SET =新值WHERE 例如:UPDATE salary SET name=王六,salary=2800 WHERE num=0002,添加一條記錄: INSERT INTO salary(字段列表)VALUES (對應的具體記錄) 例如:INSERT INTO salary(num,name,sex,salary)VALUES(0007,劉三,男,3200),刪除一條記錄: DELETE FROM WHERE 例如: DELETE FROM salary WHERE num=0002,getByte() getDouble() getInt() getFloat() getString() getDate(),10-1 判斷題 1. JDBC是Java Data Base Connectivity的簡稱,指Java同許多數(shù)據(jù)庫之間連接的一種標準。 2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銷售稅務常識培訓課件
- 健康飲食產(chǎn)業(yè)園項目質(zhì)量管理方案(參考)
- 2025年雙門轎跑車合作協(xié)議書
- 2025年汽車尾氣自動測定儀合作協(xié)議書
- 鄉(xiāng)城流動中的中國男性婚姻擠壓緒論
- 2025年臨床前CRO項目發(fā)展計劃
- 物業(yè)服務委托合同 (二)
- 2025年無機電子材料合作協(xié)議書
- 2025年黑龍江省中考生物試卷(含答案)
- 2025年閑置物品調(diào)劑回收項目合作計劃書
- 杭州轉(zhuǎn)貸基金管理辦法
- 老北京胡同文化課件
- 公司安全隱患排查記錄表
- 糧食的形態(tài)與化學組成第二節(jié)糧食的主要化學成分下64課件
- 兒科護士考試試題及答案
- 創(chuàng)新社區(qū)管樂團活動方案
- 中國農(nóng)田水利行業(yè)發(fā)展前景及發(fā)展策略與投資風險研究報告2025-2028版
- 金氏五行升降中醫(yī)方集
- 前列腺癌根治術(shù)護理查房課件
- 2021-2022學年人教版數(shù)學六年級上冊第一單元測試卷【含答案】
- 《別墅設計任務書》word版
評論
0/150
提交評論