freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于java的數(shù)據(jù)庫技術(shù)及其應(yīng)用-文庫吧資料

2024-11-25 21:54本頁面
  

【正文】 理 ,代碼是 可以通過編譯 ,如果沒有錯(cuò)誤也 是 能夠運(yùn)行 的 。 可以通過 next()方法在表中移動 ,用 getXXX()方法獲得表中的數(shù)據(jù) ,(其中 XXX為是要獲得數(shù)據(jù)的數(shù)據(jù)類型類 ,比如 :Int,String,Date,Time等 ,前邊有詳細(xì)介紹 ) 3). 關(guān)閉 ResultSet對象、 Statement對象、 Connection對象 這三個(gè)對象都 有 close()方法,使用完對象后調(diào)用該方法,將處理和釋放這些對象所占的資源 ,一名優(yōu)秀的程序員養(yǎng) 成 良好的編程習(xí)慣是有必要的。這三個(gè)方法在上邊介紹 Statement類時(shí)已經(jīng)作了詳細(xì)的說明了 ,此處不在介紹了 。 我們可以發(fā)現(xiàn)上邊的代碼其實(shí)比較相似,所以以后遇到?jīng)]有見過的數(shù)據(jù)庫,就可以按照這個(gè)步驟建立連接,需要修改的僅僅是參數(shù)而已。 String url=” jdbc:oracle:thin:localhost:1521:test” //test為數(shù)據(jù)庫 SID String user=“ 用戶名 ” ; String password=“密碼”; Connection conn =(url,user,password)。 12 Statement stmt=( )。 1)連接 SQL Server 2020數(shù)據(jù)庫 [7] (“ ” )。 例 1: jdbc:oracle:thinsite:port:dasebase //Oracle_Thin驅(qū)動使用的 URL格式 例 2: jdbc:odbc:datasourse:odbcoptions //使用 JDBCODBC橋時(shí)的 URL格式 例 3: jdbc:microsoft: //使用的 microsoft SQL Server 2020 Driver for JDBC作為驅(qū)動 ,其中 zhengfan //是數(shù)據(jù)庫的機(jī)器名, 1433是 SQL Server監(jiān)聽接口, ( 3) JDBC與常用數(shù)據(jù)庫 建立連接 在注冊 了驅(qū)動程序,定義了 URL,并知道數(shù)據(jù)庫的用戶名和密碼后,就可以調(diào)用DriverManager的 getConnection方法來建立一個(gè) Connecton對象了: Connecton con =(URL, username,password)。 (2) JDBC標(biāo)識數(shù)據(jù)源( URL) URL是 用來描述一個(gè)電子資源,并使用了一種唯一地標(biāo)識該資源的方法。驅(qū)動程序名字之間用逗號隔開,但你需要知道廠商提供的驅(qū)動程序類名,而且要確保驅(qū)動程序文件在指定的路徑上。//加載的是用純 Java代碼開發(fā)的驅(qū) //程序 ,這種方法很適合跨平臺的開發(fā) 2).其實(shí)還可以通過設(shè)置系統(tǒng)屬性 ,這種方式允許用戶修改一個(gè)屬性文件 來安裝驅(qū)動。//加載的是 JDBCODBC橋驅(qū)動 . b). (“ ” )。 根據(jù)驅(qū)動 程序 的不同裝載 時(shí)也有些區(qū)別 。 DriverManager 類負(fù)責(zé)選取數(shù)據(jù)庫驅(qū)動程序和建立新的數(shù)據(jù)庫連接,DriverManager類實(shí)現(xiàn)了 。 這些類一般是關(guān)于圖形界面和數(shù)據(jù)庫的 。 import .*。 import .*。 import .*。 import .*。 圖 28 JDBC 三 層應(yīng)用結(jié)構(gòu) [13] (七 ) 數(shù)據(jù)庫訪問過程 的步驟 上邊我們介紹了 JDBC 的結(jié)構(gòu)和常用的類,那么下邊我們根據(jù)這一結(jié)構(gòu),運(yùn)用這些常用的類和方法,來對 JDBC訪問數(shù)據(jù)庫的 基本步驟作以 介紹 。 三層結(jié)構(gòu)很清楚的將客戶端 ,事務(wù)邏輯 (中間層 )和源數(shù)據(jù)分開 ,三層結(jié)構(gòu)與兩層結(jié)構(gòu)相比較有如下優(yōu)點(diǎn) :(1)當(dāng)數(shù)據(jù)庫系統(tǒng)更換時(shí) ,不用修改客戶端程序 ,僅修改中間層 。 圖 27 JDBC 兩層應(yīng)用結(jié) 構(gòu) [13] 三層模型如圖 28所示 。 兩層模型如圖 27 所示 ,在 兩層 結(jié)構(gòu) 模型 中 ,應(yīng)用程序 Application 或小的應(yīng)用程序Applet作為客戶端直接用驅(qū)動程序和數(shù)據(jù)庫進(jìn)行交互 ,客戶端的 SQL請求由驅(qū)動程序送到數(shù) 據(jù)庫 ,結(jié)果直接返回客戶端 .數(shù)據(jù)庫可以是本地的也可以 是 另一臺計(jì)算機(jī)上的 ,其中客戶端所 在的計(jì)算機(jī)為客戶機(jī) ,數(shù)據(jù)庫所在的計(jì)算機(jī)為服務(wù)器 。 可能是 JDK 的版本的 原因 ,getString()方法有時(shí)只能用位置索引作為參數(shù) ,否則既不報(bào)錯(cuò) ,也取不到數(shù)據(jù) ,我多次遇見過 這種 的情況 ,所以 getString()方法最好用位置索引作為參數(shù) ,以免出錯(cuò) 。 ResultSet類中提供了四個(gè)移動行的方法,next()將數(shù)據(jù)指針下移一行; first()將數(shù)據(jù)指針移到結(jié)果集的第一行; last()將數(shù)據(jù)指針移到結(jié)果集的最后一行; previous()將數(shù)據(jù)指針上移一行。 GetUpdateCount()方法返回當(dāng)前更新計(jì)算的結(jié)果 ,但必須檢查結(jié)果是否為一個(gè) ResultSet對象或一個(gè)整數(shù)值。 如果沒有設(shè)置數(shù)據(jù)源的登錄名和密碼 ,那么這兩個(gè)參數(shù)可以用空字符串代替 , 即 “ ” 。 9 一般情況下在建立了特定數(shù)據(jù)庫連接后,就可以用該連接發(fā)送 SQL 語句了, Statemnt對象用 Connection的 createStatement()方法創(chuàng)建,如在 ACCESS數(shù)據(jù)庫 中使用 JDBCODBC Bridge作為驅(qū)動 時(shí) ,它的一般形式為 : Connection con (jdbc:odbc:數(shù)據(jù)源名字 ,數(shù)據(jù)源的登錄名 login name,數(shù)據(jù)源的密碼 password )。 prepareStatement() 返回包 含預(yù)編譯語句(又 或沒 有 IN 參數(shù))的一個(gè)新 的PrepareStatement對象 prepareCall() 返回包含預(yù)編譯的 SQL語句的一個(gè) CallableStatement對象 getMetaData() 用于獲取這個(gè)連接的數(shù)據(jù)庫的源數(shù)據(jù) rollback() 用于執(zhí)行退回操作 ,配合 setSavepoint()方法所設(shè)置的退回點(diǎn),退回到相應(yīng)的點(diǎn) getMetaData 返回用于連接的一個(gè) DatabaseMetaData對象 getTransactionIsolation() 返回連接的事務(wù)處理隔離層 getWarnings() 返回在這個(gè)連接中通過調(diào)用報(bào)告的第一個(gè) SQL警告 inReadOnly() 返回連接的只讀狀態(tài) setAutoClose() 激活默認(rèn) /禁止連接的只讀狀態(tài) setReadOnly() 激活 /禁止連接的只讀模式 setTransactionIsolation() 為新建的連接設(shè)置事務(wù)處理隔離層 4. Statement對象用于將 SQL語句發(fā)送到數(shù)據(jù)庫中,實(shí)際上 有 三種 Statement對象 , 他們都作為在給定連接上執(zhí)行 SQL 語句的包容器: Statement、 PreparedStatement(他從Statement中繼承而來)和 CallableStatement(它從 PreparedStatement中繼承而來)。這個(gè)接口提供了非常多的方法,與數(shù)據(jù)庫操作相關(guān)的大部分常用方法都是這個(gè)接口中提供。 也處理這些語句的事務(wù)管理。該方法的作用是 從已經(jīng)注冊的 JDBC的驅(qū)動程序中選擇一個(gè)合適的驅(qū)動程序,建立與特定數(shù)據(jù)庫的連接,并返回一個(gè) 。另外, DriverManger 類也處理諸如驅(qū)動程序登錄時(shí)的 限制及登錄和跟蹤消息的顯示等事務(wù)。 2. 該類負(fù)責(zé)處理 JDBC數(shù)據(jù)庫驅(qū)動程序的加載和卸載。當(dāng)對某一數(shù)據(jù)庫發(fā)出請求時(shí) DriverManger 把數(shù)據(jù)源請求傳遞給注冊為 URL的每一個(gè) Driver。這個(gè)操作允許應(yīng)用程序通過調(diào)用()方法來創(chuàng)建實(shí)例以裝載驅(qū)動程序。當(dāng)中用到的類和接口我們將在下一節(jié)中作詳細(xì)介紹。 Java應(yīng)用程序員通過 SQL包中定義的一系列抽象類對數(shù)據(jù)庫進(jìn)行操作,而實(shí)現(xiàn)這些抽象類 , 并完成實(shí)際操作的,則是由數(shù)據(jù)庫驅(qū)動器 Driver運(yùn)行的。整個(gè)結(jié)構(gòu)和工作過程如圖25所示。 它與數(shù)據(jù)庫交互的協(xié)議與 ODBC同數(shù)據(jù)庫交互的協(xié)議一樣 ,基本思想是 : “ Java 應(yīng)用程序 ” 中根據(jù) JDBC API所編寫的程序與“ JDBC 驅(qū)動器 \管理器 ” 通信 , “ JDBC 驅(qū)動 JDBC API JDBC Driver API JDBCODBC 橋 數(shù)據(jù)庫專用驅(qū)動 數(shù)據(jù)庫協(xié)議驅(qū)動 ODBC 驅(qū)動程序 某種數(shù)據(jù)庫系統(tǒng) 某種數(shù)據(jù)庫系統(tǒng) 中間件 DB 協(xié)議解釋器 通用數(shù)據(jù)庫 Java 應(yīng)用程序 JDBC 驅(qū)動器 \管理器 圖 25 JDBC 框架結(jié)構(gòu)圖 7 Connection(連接) 接) 器 \管理器 ” 再使用加插在 其中是“ JDBC 驅(qū)動器 ” 與實(shí)際數(shù)據(jù)庫通信 ,具體而言 JDBC由兩層組成 :一層是面向底層的 JDBC Driver API,另一層是面向程序開發(fā)人員的 JDBC API。 同時(shí)它 是用純 Java語言編寫的 , 不會破壞 Java的特性 ,所以是比較理想的選擇 。 圖 23 本地協(xié)議純 Java驅(qū)動程序 [4] 4. Pure JDBC Driver 純 Java驅(qū)動程序 ,將 JDBC調(diào)用直接轉(zhuǎn)換為 DBMS所使用的網(wǎng)絡(luò)協(xié)議如圖 24所示 ,這將允許從客戶機(jī) 上直接調(diào)用 DBMS服務(wù)器 ,是 Intrant的訪問的一個(gè)很實(shí)用的解決方法 。這類驅(qū)動程序同應(yīng)用程序一同駐留在客戶層上 ,并由它直接與數(shù)據(jù)庫進(jìn)行通信。 Java to Native API由于要事先在客戶機(jī)上安裝其它的軟件 ,所以會降低 Java程序的兼容性 。 圖 21 JDBCODBC 橋 [4] 現(xiàn)在 JDBCODBC橋 已是 JDK的一部分 ,即 ,它的使用相對比較 簡單 ,但由于它需要安裝一些非 Java的代碼到運(yùn)行程序的計(jì)算機(jī)上 ,并且這些代碼使用了本 5 地化系統(tǒng) ,所以 Java程序的平臺獨(dú)立性等 可能 有所破壞 。 它訪問數(shù)據(jù)庫的結(jié)構(gòu)如圖 21所示 。 1. JDBCODBC Bridge 到目前為止 ODBC可能是用得 最 為 廣泛的訪問數(shù)據(jù)庫的 API,它幾乎提供了連接任何一種平臺 ,任何一種數(shù)據(jù)庫的能力 ,所以 Java只要有一個(gè)驅(qū)動程序能同 ODBC相連接 ,那么 Java就可以同任何數(shù)據(jù)庫相連接了 , Sun 公司 開發(fā)的 JDBC– ODBC Bridge 就具有這種 功能 ,用此技術(shù)可實(shí)現(xiàn) JDBC到 ODBC 的轉(zhuǎn)化 ,這樣 Java程序就可以訪問帶 ODBC專用驅(qū)動程序的數(shù)據(jù)庫 了 。 (三 ) JDBC驅(qū)動程序的種類 JDBC驅(qū)動 基本上 可以 應(yīng)用到當(dāng)前常用的所有數(shù)據(jù)庫平臺上 ,大量的數(shù)據(jù)庫廠商和第三方開發(fā)商支持 Java的 JDBC標(biāo)準(zhǔn) ,并開發(fā)了各種針對不同 數(shù)據(jù)庫的 JDBC驅(qū)動程序 。 ( 2)向數(shù)據(jù)庫發(fā)送 SQL語句。 JDBC最突出的優(yōu)點(diǎn)是 ,它 以一 種統(tǒng)一的方式,來對各種數(shù)據(jù)庫進(jìn)行操作,它隱藏了不同數(shù)據(jù)庫的不同特征, 也就 是 說開發(fā)人員可以不必寫一個(gè)程序訪問 Oracle ,寫另一個(gè)程序訪問 Sybase,再 寫一個(gè)程序訪問 Microsoft的 SQL Server。 具體的說 JDBC 的作用是 , 提供標(biāo)準(zhǔn)的 API 中間層,使得在 Java 程序中可以訪問數(shù)據(jù)庫 。 在 Java 中專門設(shè)置了一個(gè) 包 ,該包里定義了很多用來實(shí)現(xiàn) SQL 功能的類 ,利用這些類就可以方便地開發(fā)數(shù)據(jù)庫的應(yīng)用程序 ,也就是說 JDBC幫助 Java語言與不同數(shù)據(jù)庫之間發(fā)生聯(lián)系 。 二 JDBC技術(shù) (一 ) JDBC簡介 我們都知道 ,在設(shè)計(jì)數(shù)據(jù)庫應(yīng)用程序 時(shí),不可避免地會遇到如何訪問數(shù)據(jù)庫及如何操縱數(shù) 據(jù)庫中的數(shù)據(jù)等問題,而 基于 Java的 數(shù)據(jù)庫接 口技術(shù) JDBC,就是為了更好的解決這些問題而推出的。JDBC 是由純 Java 語言編寫而成的,它不但解決了上邊兩種 Java 訪問數(shù)據(jù)庫時(shí)存在的問題,而且 Java 和 JDBC 的結(jié)合可以在開發(fā)數(shù)據(jù)庫應(yīng)用時(shí)真正實(shí)現(xiàn)“一次開發(fā),可以隨處運(yùn)行” ,可以說 JDBC 的出現(xiàn)擴(kuò)充了 Java 的應(yīng)用范圍。 當(dāng)然我們在這里并不是否認(rèn) ODBC 的成功 ,而是說如果有一種更好的方法不是更好嗎?因?yàn)?隨著 Java 牢牢占據(jù)了軟件開發(fā)語言的半壁江山 ,學(xué)習(xí) Java 和運(yùn)用 Java 作為開發(fā)工具的人越來越多, Java 對數(shù)據(jù)庫的訪問越來越迫切, 后來 SUN 公司 在 , 推出 了一個(gè) 可以用于執(zhí)行 SQL 語句的 可選部件 JDBC(Java Database Connectivity, Java 數(shù)據(jù)庫連接 ),她的作用也是用于建立 Java與各種數(shù)據(jù)庫之間的連接 。 后來, Microsoft 公司推出了 ODBC,雖然它解決了 Java 訪問數(shù)據(jù)庫的速度和效率問題,但是
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1