




已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第十講 訪問數(shù)據(jù)庫,java,數(shù)據(jù)庫,學(xué)習(xí)目標(biāo) 1. 掌握:JDBC應(yīng)用程序接口的使用 2. 掌握:JDBC技術(shù)訪問數(shù)據(jù)庫的方法 3. 了解:JDBC技術(shù) 重點(diǎn) 掌握:建立數(shù)據(jù)庫的連接的方法 難點(diǎn) 理解:JDBC的工作原理,本講要點(diǎn),軟件的開發(fā)經(jīng)常會(huì)需要訪問數(shù)據(jù)庫。數(shù)據(jù)庫的標(biāo)準(zhǔn)是多樣的,ODBC(開放式數(shù)據(jù)庫連接) 是一個(gè)編程接口,它允許程序使用SQL(結(jié)構(gòu) 化查詢語言)訪問DBMS(數(shù)據(jù)庫管理系統(tǒng)) 中的數(shù)據(jù)。 Sun公司認(rèn)為ODBC難以掌握,使 用復(fù)雜并且在安全性方面存在問題。 因此Java語言使用JDBC(Java DataBase Connectivity)技術(shù)進(jìn)行數(shù)據(jù)庫的訪問。,10.1 概述,JDBC是Java 數(shù)據(jù)庫連接(Java Data Base Connectivity)技術(shù)的簡稱。是Java同數(shù)據(jù)連接的一種標(biāo)準(zhǔn),是一種用于執(zhí)行SQL語句的Java API, 它由一組用 Java 編程語言編寫的類和接 口組成。 JDBC 為數(shù)據(jù)庫開發(fā)人員提供了一組標(biāo)準(zhǔn)的API,使他們能夠用純Java API 來編寫數(shù)據(jù) 庫應(yīng)用程序。,10.1.1 JDBC簡介,JDBC驅(qū)動(dòng)程序管理器又可以用兩種方式和最終 的數(shù)據(jù)庫進(jìn)行通信: 一種是使用JDBCODBC橋接驅(qū)動(dòng)程序的間接方式; 另一種是使用JDBC驅(qū)動(dòng)程序的直接方式。 為了訪問數(shù)據(jù)庫,要首先安裝JDBC API,數(shù)據(jù) 庫驅(qū)動(dòng)程序和DBMS(數(shù)據(jù)庫管理系統(tǒng))。 JDK自帶有JDBC API,安裝JDK后就擁有JDBC API了,10.1.1 JDBC簡介,(1)JDBCODBC橋接驅(qū)動(dòng)程序 正確安裝完JDK后,即已自動(dòng)獲得了Sun公司提供的 JDBCODBC橋接驅(qū)動(dòng)程序。 (2)ODBC驅(qū)動(dòng)程序。 如果機(jī)器上還沒有安裝ODBC,請根據(jù)ODBC驅(qū)動(dòng)程序供應(yīng)商提供的信息安裝并配置ODBC驅(qū)動(dòng)程序。 (3)訪問特定數(shù)據(jù)庫的JDBC驅(qū)動(dòng)程序。 如果需要訪問MS SQL Server 2000上的數(shù)據(jù)庫,下載并安裝MS SQL Server 2000的JDBC驅(qū)動(dòng)程序。,1.數(shù)據(jù)庫驅(qū)動(dòng)程序包括:,軟件開發(fā)環(huán)境的搭建:,1、安裝SQL Server 2000; 2、安裝SQL Server 2000 的補(bǔ)丁程序,從下載SQLsp4.rar,安裝該補(bǔ)丁程序即可; 3、從下載SQL Server 2000 For JDBC的驅(qū)動(dòng)程序,jdbcsetup.exe,安裝即可,默認(rèn)的安裝目錄為:c:Program FilesMicrosoft SQL Server 2000 Driver for JDBC,根據(jù)需要,選擇性地安裝DBMS。 例如,如果需要和一個(gè)運(yùn)行在MS SQL Server 2000上的數(shù)據(jù)庫建立連接,那么首先就需要在本機(jī)或是其他機(jī)器上安裝一個(gè)MS SQL Server 2000的DBMS。 注意:ODBC和DBMS的安裝和配置本身就是 技術(shù)性很強(qiáng)的工作。如果在安裝和配置過程中 存在困難,最好參考相關(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ū)動(dòng)程序并為創(chuàng)建新數(shù)據(jù)庫連接提供支持。 (2)java.sql.Connection,完成對某一個(gè)指定數(shù)據(jù)的連接功能。 (3)java.sql.Statement,在一個(gè)給定的連接中作為SQL執(zhí)行聲明的容器。 (4)java.sql.ResultSet,用來控制對一個(gè)特定記錄集數(shù)據(jù)的存取。,10.2 JDBC應(yīng)用程序接口,建立一個(gè)數(shù)據(jù)庫連接分兩步:載入驅(qū)動(dòng)程序和建立連接。 1載入驅(qū)動(dòng)程序 一般形式為: Class.forName(“驅(qū)動(dòng)程序名稱”); 例如:如用JDBCODBC橋接驅(qū)動(dòng)程序,驅(qū)動(dòng)程序名稱為“sun.jdbc.odbc.JdbcOdbcDriver”,則語句: Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); 2建立連接 Connection 對象代表與數(shù)據(jù)庫的連接。連接過程包括所執(zhí)行的 SQL 語句和在該連接上所返回的結(jié)果??膳c單個(gè)數(shù)據(jù)庫有一個(gè)或多個(gè)連接,或與許多數(shù)據(jù)庫有連接。,10.2.1 數(shù)據(jù)庫連接,驅(qū)動(dòng)程序管理器(DriverManager) ,作用于用戶和驅(qū)動(dòng)程序之間。在數(shù)據(jù)庫和相應(yīng)驅(qū)動(dòng)程序之間建立連接。 一般形式為: Connection con=DriverManager.getConnection (url,“用戶名“,“密碼”); 參數(shù)url由三部分組成,各部分用冒號分隔,如: jdbc: :驅(qū)動(dòng)程序名或數(shù)據(jù)庫連接機(jī)制的名稱。 子協(xié)議名的典型示例是 “odbc“。 :是本地?cái)?shù)據(jù)資源。 不同驅(qū)動(dòng)程序,用驅(qū)動(dòng)程序名稱以及子協(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。使用哪一個(gè)方法由SQL語句所產(chǎn)生的內(nèi)容決定。,10.2.2 向數(shù)據(jù)庫發(fā)送SQL語句,(1)executeQuery方法 用于執(zhí)行產(chǎn)生單個(gè)結(jié)果集的語句。如select。 (2)executeUpdate方法 用于執(zhí)行insert、update、delete、SQL(數(shù)據(jù) 定義)語句。ExecuteUpdate的返回值是一個(gè)整數(shù),用于表示受影響的行數(shù)。 (3)execute方法 用于執(zhí)行返回多個(gè)結(jié)果集,多個(gè)更新計(jì)數(shù)或二者組合的語句。,10.2.2 向數(shù)據(jù)庫發(fā)送SQL語句,ResultSet接口用于獲取執(zhí)行SQL語句返回的結(jié)果,結(jié)果集是一個(gè)表,它的包含了符合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ù)庫操作完成后,應(yīng)該將與數(shù)據(jù)庫的連接關(guān)閉。關(guān)閉連接使用的語句是close()。 一般形式為:連接變量.close() 例如: 要關(guān)閉前面建立的連接con,使用以下語句: con.close(),10.2.4 關(guān)閉數(shù)據(jù)庫連接,數(shù)據(jù)庫應(yīng)用程序ODBC在使用ODBC管理數(shù)據(jù)庫時(shí),首先需要做的工作是在ODBC管理器中對數(shù)據(jù)庫進(jìn)行登記注冊和連接測試,該項(xiàng)工作就是配置ODBC數(shù)據(jù)源,數(shù)據(jù)源即數(shù)據(jù)庫的位置、數(shù)據(jù)庫的類型以及ODBC驅(qū)動(dòng)程序等信息的集合。 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”菜單項(xiàng),進(jìn)入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ù)庫窗口中, 選擇“表”和使用“使用 設(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)有一個(gè)數(shù)據(jù)庫名為myDB.mdb,存在d:java目錄下。為數(shù)據(jù)庫myDB.mdb在ODBC管理器中配置數(shù)據(jù)源的步驟如下: (1)打開Windows中的控制板面。 (2)雙擊“管理工具”圖標(biāo),出現(xiàn)管理工具窗口。在該窗口中雙擊“數(shù)據(jù)源(ODBC)”圖標(biāo),出現(xiàn)ODBC數(shù)據(jù)源對話框。選擇“系統(tǒng)DSN”選項(xiàng)卡,如圖10-8所示。圖10-8 “系統(tǒng)DSN”選項(xiàng)卡圖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è)置數(shù)據(jù)庫的用戶名和密碼,單擊【高級】按鈕,出現(xiàn)如圖10-12所示“設(shè)置高級選項(xiàng)”對話框。登錄名稱為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 “設(shè)置高級選項(xiàng)”對話框,圖10-12 “設(shè)置高級選項(xiàng)”對話框,10.3.2 建立數(shù)據(jù)源,【例10-1】源程序Query.java,是一個(gè)簡單的例子,利用JDBC-ODBC橋驅(qū)動(dòng)程序,訪問Access數(shù)據(jù)庫myDB.mdb,顯示表中所有職員的編號、姓名、性別、工資。 import java.sql.*; class Query public static void main(String args) try /加載數(shù)據(jù)庫驅(qū)動(dòng)程序 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,生成學(xué)生記錄 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(); ,【程序分析】 注意:運(yùn)行該程序,首先利用Access2000設(shè)計(jì)的數(shù)據(jù)庫,并建立一數(shù)據(jù)表,表名為employee,含有數(shù)據(jù)項(xiàng)num,name,sex,salary。其次才能運(yùn)行本程序。 第1行:引入包java.sql中的所有類, 第9行:加載JDBC-ODBC橋驅(qū)動(dòng)程序。 第18行:連接數(shù)據(jù)庫myDB,ma為用戶標(biāo)識符,123為用戶口令。 第19行:stmt為SQL語句變量。 第21行:對表employee中所有職員進(jìn)行查詢,結(jié)果存放在對象rs中。,更新操作的實(shí)現(xiàn) UPDATE SET =新值WHERE 例如:UPDATE salary SET name=王六,salary=2800 WHERE num=0002,添加一條記錄: INSERT INTO salary(字段列表)VALUES (對應(yīng)的具體記錄) 例如: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ù)庫之間連接的一種標(biāo)準(zhǔn)。 2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國鍍鋅波形梁護(hù)欄市場分析及競爭策略研究報(bào)告
- 2025至2030年中國金剛石產(chǎn)品市場分析及競爭策略研究報(bào)告
- 2025至2030年中國西服外包裝袋市場分析及競爭策略研究報(bào)告
- 2025至2030年中國肝絡(luò)欣丸市場分析及競爭策略研究報(bào)告
- 2025至2030年中國竹編果盤市場分析及競爭策略研究報(bào)告
- 2025至2030年中國電腦繡花機(jī)齒輪市場分析及競爭策略研究報(bào)告
- 2025至2030年中國爽足軟膏市場分析及競爭策略研究報(bào)告
- 2025至2030年中國活動(dòng)腳手市場分析及競爭策略研究報(bào)告
- 2025至2030年中國槽型支架市場分析及競爭策略研究報(bào)告
- 2025至2030年中國無線紅外現(xiàn)場報(bào)警探測器市場分析及競爭策略研究報(bào)告
- 拉薩市墨竹工卡縣思金拉措小學(xué)-2025年春季英語教研組工作總結(jié)-一路求索不停歇【課件】
- 山東省菏澤市2023?2024學(xué)年高一下學(xué)期7月期末考試 數(shù)學(xué)試題(含解析)
- (三級)人工智能訓(xùn)練師職業(yè)技能鑒定理論考試題(附答案)
- 2025杭州市臨安區(qū)事業(yè)單位招聘80人考前自測高頻考點(diǎn)模擬試題附答案詳解(鞏固)
- 2025年北京二十中中考英語零模試卷
- 護(hù)理服務(wù)質(zhì)量提升路徑與實(shí)踐
- 糞肥還田協(xié)議書范本
- 商務(wù)數(shù)據(jù)分析-形考作業(yè)4(第5章)-國開(ZJ)-參考資料
- 有機(jī)合成與推斷綜合大題(解析版)
- 智能客服語音識別技術(shù)在醫(yī)療行業(yè)的應(yīng)用現(xiàn)狀與發(fā)展報(bào)告
- 工勤技師考試試題及答案
評論
0/150
提交評論