版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
*第1頁(yè)第十一章JDBC數(shù)據(jù)庫(kù)編程技術(shù)*第2頁(yè)知識(shí)點(diǎn):了解常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)熟悉JDBC的工作原理,掌握J(rèn)DBC操作數(shù)據(jù)庫(kù)所用到的類的使用方法掌握J(rèn)DBC開(kāi)發(fā)數(shù)據(jù)庫(kù)的工作步驟*第3頁(yè)本章主要介紹以下5個(gè)部分的內(nèi)容:1.關(guān)系數(shù)據(jù)庫(kù)簡(jiǎn)介2.JDBC基礎(chǔ)3.主要JDBC類4.JDBC編程工作步驟5.實(shí)例*第4頁(yè)一、關(guān)系數(shù)據(jù)庫(kù)簡(jiǎn)介(1)關(guān)系數(shù)據(jù)庫(kù)的特點(diǎn)有哪些?一個(gè)數(shù)據(jù)庫(kù)由一個(gè)或多個(gè)表組成,每個(gè)表由行,列組成,列代表字段(即屬性),行代表記錄.表中的記錄是唯一的,主關(guān)鍵字唯一。(2)對(duì)關(guān)系數(shù)據(jù)庫(kù)的操作有哪些? 搜索(查找) 添加,插入,刪除記錄 更新記錄 投影和連接操作*第5頁(yè)(3)SQL語(yǔ)句(1)SELECT[ALL|DISTINCT|DISTINCTROW|TOP]
{*|talbe.*|[table.]field1[ASalias1][,[table.]field2[ASalias2][,…]]}
FROMtableexpression[,…][INexternaldatabase]
[WHERE…]
(2)更新數(shù)據(jù)語(yǔ)法:
UPDATE表名
SET新值
WHERE條件
(3)DELETE子句的語(yǔ)法:
DELETE[表名.*]
FROM來(lái)源表
WHERE條件(4)INSERT子句的語(yǔ)法:
INSETRINTO目的表或查詢(字段1,字段2,…)
values(數(shù)值1,數(shù)值2,…)*第6頁(yè)二、JDBC基礎(chǔ)
JDBC是為Java提供的一個(gè)平臺(tái)無(wú)關(guān)的數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)API,它提供了一個(gè)通用的SQL數(shù)據(jù)庫(kù)存取機(jī)制,該機(jī)制為多數(shù)關(guān)系型DBMS提供統(tǒng)一接口。JDBC分為JDBCAPI與JDBC驅(qū)動(dòng)程序。前者即一組JDBC類庫(kù),使用這個(gè)類庫(kù)可以以一種標(biāo)準(zhǔn)的方法、方便地訪問(wèn)數(shù)據(jù)庫(kù)資源(在java.sql類包中)。JDBC為訪問(wèn)不同的數(shù)據(jù)庫(kù)提供了一種統(tǒng)一的途徑,象ODBC(OpenDatabaseConnectivity)一樣,JDBC對(duì)開(kāi)發(fā)者屏蔽了一些細(xì)節(jié)問(wèn)題。*第7頁(yè)二、JDBC基礎(chǔ)
JDBC包含一系列豐富的類,在java.sql包中(JDK.1.1以上).JDBC提供了一種API實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)透明存取的方法,這種存取依據(jù)驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn),不同的數(shù)據(jù)庫(kù)制造尚提供它們不同的驅(qū)動(dòng)程序.JDBC的目標(biāo)是使應(yīng)用程序開(kāi)發(fā)人員使用JDBC可以連接任何提供了JDBC驅(qū)動(dòng)程序的數(shù)據(jù)庫(kù)系統(tǒng),這樣就使得程序員無(wú)需對(duì)特定的數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)有過(guò)多的了解,從而大大簡(jiǎn)化和加快了開(kāi)發(fā)過(guò)程。*第8頁(yè)與ODBC相類似,JDBC接口(API)也包括兩個(gè)層次:
面向應(yīng)用的API:JavaAPI,抽象接口,供應(yīng)用程序開(kāi)發(fā)人員使用(連接數(shù)據(jù)庫(kù),執(zhí)行SQL語(yǔ)句,獲得結(jié)果)。
面向數(shù)據(jù)庫(kù)的API:JavaDriverAPI,供開(kāi)發(fā)商開(kāi)發(fā)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序用。與ODBC相比,JDBC沒(méi)有了定制的“數(shù)據(jù)源”的概念,而是直接在應(yīng)用程序中加載驅(qū)動(dòng)程序并連接特定的數(shù)據(jù)庫(kù)。二、JDBC基礎(chǔ)*第9頁(yè)三、主要JDBC類(1)Driver類:用來(lái)與數(shù)據(jù)庫(kù)通信的軟件.(2)DriverManager類:是JDBC基礎(chǔ),用來(lái)管理和卸載JDBC驅(qū)動(dòng)程序.該類有一個(gè)getConnection()方法,用于驗(yàn)證JDBC數(shù)據(jù)源,并返回Connection對(duì)象.(3)Connection類:該類的CreateStatement()方法連接JDBC數(shù)據(jù)源,返回Statement對(duì)象.(4)Statement類:將SQL行為封裝起來(lái)交給數(shù)據(jù)庫(kù)引擎,調(diào)用該類的execute(),executeQuery(),executeUpdate()等方法,執(zhí)行SQL語(yǔ)句,返回resultSet對(duì)象.(5)ResultSet類:封裝了一個(gè)由SQL查詢返回的結(jié)果.該類的getString(),getInt()等方法獲得一欄數(shù)據(jù)的存取,next()方法到下一行.*第10頁(yè)四、JDBC編程工作步驟任何一個(gè)JDBC應(yīng)用程序,都需要以下四個(gè)步驟:加載JDBC驅(qū)動(dòng)程序建立與數(shù)據(jù)庫(kù)的連接進(jìn)行數(shù)據(jù)庫(kù)操作數(shù)據(jù)集結(jié)果分析關(guān)閉相關(guān)連接*第11頁(yè)1、加載JDBC驅(qū)動(dòng)程序在應(yīng)用程序中,有三種方法可以加載驅(qū)動(dòng)程序:利用System類的靜態(tài)方法setProperty()System.setProperty(“jdbc.drivers”,“sun.jdbc.odbc.JdbcOdbcDriver”);
利用Class類的靜態(tài)方法forName()Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);Class.forName(“oracle.jdbc.driver.OracleDriver”);
直接創(chuàng)建一個(gè)驅(qū)動(dòng)程序?qū)ο髇ew
sun.jdbc.odbc.JdbcOdbcDriver();*第12頁(yè)2、建立與數(shù)據(jù)庫(kù)的連接利用DriverManager類的靜態(tài)方法getConnection()來(lái)獲得與特定數(shù)據(jù)庫(kù)的連接實(shí)例(Connection實(shí)例)。Connectionconn=DriverManager.getConnection(source,user,pass);
這三個(gè)參數(shù)都是String類型的,使用不同的驅(qū)動(dòng)程序與不同的數(shù)據(jù)庫(kù)建立連接時(shí),source的內(nèi)容是不同的,但其格式是一致的,都包括三個(gè)部分:jdbc:subprotocol:subname
對(duì)于JDBC-ODBCBridge,subprotocol(子協(xié)議)為odbc,subname(子名字)則為數(shù)據(jù)源:“jdbc:odbc:myDSN”。
對(duì)于其他類型的驅(qū)動(dòng)程序,根據(jù)數(shù)據(jù)庫(kù)系統(tǒng)的不同subprotocol和subname有不同的格式和內(nèi)容。*第13頁(yè)3、進(jìn)行數(shù)據(jù)庫(kù)操作每執(zhí)行一條SQL語(yǔ)句,都需要利用Connetcion實(shí)例conn的createStatement()方法來(lái)創(chuàng)建一個(gè)Statement實(shí)例。 Statementmystmt=conn.CreateStatement();Statement的常用方法包括:執(zhí)行SQL:INSERT,UPDATE或DELETE等語(yǔ)句intexecuteUpdate(Stringsql)執(zhí)行SQL:SELECT語(yǔ)句ResultSetexecuteQuery(Stringsql)Statement中還有其他的方法來(lái)執(zhí)行SQL語(yǔ)句。*第14頁(yè)4、數(shù)據(jù)集結(jié)果分析一旦執(zhí)行了SELECT語(yǔ)句,ResultSet對(duì)象rs就包含了滿足SQL語(yǔ)句條件的所有行。使用rs.next()方法可以下移rs中的行。在行中取得數(shù)據(jù)可以通過(guò)rs.get中的多種方法實(shí)現(xiàn)。例如,假定有一個(gè)表emps,其中存儲(chǔ)了具有name,age等多個(gè)字段的多個(gè)記錄。如果執(zhí)行了查詢Select*fromemps,則下面的代就可以說(shuō)明如何獲得結(jié)果:ResultSetrs=stmt.execteQuery("Select*fromemps");While(rs.next()){Stringfl=rs.getString(1);//第一列的值<=>rs.getString(“name”)intf2=rs.getInt(2);//第一列的值<=>rs.getString(“age”)floatf3=rs.getFloat(3);intf4=getInt(4);}*第15頁(yè)5、關(guān)閉連接mystmt.close();//關(guān)閉對(duì)象(SQL語(yǔ)句對(duì)象)rs.close();//關(guān)閉對(duì)象(結(jié)果集對(duì)象)con.close();//關(guān)閉連接*第16頁(yè)6、整體格式importjava.sql.*;publicclassJDBCExample{Connectionmyconn;Statementmystmt;ResultSetmyrs;publicstaticvoidmain(Stringargs[]){try{Class.forname(“xxxxxx”);//驅(qū)動(dòng)程序名//sun.jdbc.odbc.JdbcOdbcDriver}Catch(ClassNotFoundExceptione){……}*第17頁(yè)try{myconn=DriverManager.getConnection(“數(shù)據(jù)源”,UN,PW);mystmt=myconn.CreateStatement();mystmt.executeUpdate(“insertintoxxx(…,…)values(…,…)”);myrs=mystmt.executeQuery(“select*fromxxx”);while(myrs.next()){ intxxx1=myrs.getInt(‘字段1’);Stringxxx2=myrs.getString(‘字段2“);……輸出結(jié)果;}}Catch(SQLExceptione){……}……}}jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};DBQ=XXX.mdbmyrs.close();mystmt.close();myconn.close();*第18頁(yè)五、實(shí)例下面我們通過(guò)一個(gè)簡(jiǎn)單的實(shí)例介紹如何使用JDBC開(kāi)發(fā)數(shù)據(jù)庫(kù)程序。首先使用Access創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)em
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度農(nóng)民工就業(yè)合同范本(勞動(dòng)權(quán)益保障)
- 2025年度智能倉(cāng)儲(chǔ)車間租賃管理合同模板3篇
- 二零二五年度出租車租賃市場(chǎng)推廣與廣告合作協(xié)議4篇
- 二零二五年度初中學(xué)校紀(jì)律教育與安全防護(hù)協(xié)議書(shū)4篇
- 二零二五版樓層套房租賃合同書(shū)(含室內(nèi)空氣凈化服務(wù))4篇
- 2025年度能源企業(yè)常年法律顧問(wèn)聘請(qǐng)合同3篇
- 2025年度體育館場(chǎng)地標(biāo)準(zhǔn)租賃與賽事宣傳推廣合同
- 2025年環(huán)保污水處理設(shè)施建設(shè)及運(yùn)營(yíng)合同4篇
- 二零二五年度城市軌道交通旅客運(yùn)輸管理細(xì)則合同
- 2025年度餐飲連鎖品牌合作投資合同范本3篇
- 2024年高考八省聯(lián)考地理適應(yīng)性試卷附答案解析
- 足浴技師與店內(nèi)禁止黃賭毒協(xié)議書(shū)范文
- 中國(guó)高血壓防治指南(2024年修訂版)要點(diǎn)解讀
- 2024-2030年中國(guó)光電干擾一體設(shè)備行業(yè)發(fā)展現(xiàn)狀與前景預(yù)測(cè)分析研究報(bào)告
- 湖南省岳陽(yáng)市岳陽(yáng)樓區(qū)2023-2024學(xué)年七年級(jí)下學(xué)期期末數(shù)學(xué)試題(解析版)
- 農(nóng)村自建房安全合同協(xié)議書(shū)
- 杜仲葉藥理作用及臨床應(yīng)用研究進(jìn)展
- 4S店售后服務(wù)6S管理新規(guī)制度
- 高性能建筑鋼材的研發(fā)與應(yīng)用
- 無(wú)線廣播行業(yè)現(xiàn)狀分析
- 漢語(yǔ)言溝通發(fā)展量表(長(zhǎng)表)-詞匯及手勢(shì)(8-16月齡)
評(píng)論
0/150
提交評(píng)論