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

正文內容

基于java的數(shù)據(jù)庫技術及其應用-在線瀏覽

2025-01-20 21:54本頁面
  

【正文】 率較大。此外, Java 沒有指針,而 ODBC 卻對指針用得很廣泛(包括很容易出錯的指針 void *),這些因素都可能 會為系統(tǒng)的安全帶來隱患。 到 ,JDBC已經(jīng)作為 Java 語言的標準部件了 , 在現(xiàn)今流行的 J2EE 中 JDBC 也是重要的組成部分 。 本課題 就是在這樣的背景下提出來的 ,目的是要 探討 JDBC 通過怎樣的方式,使Java 語言能游 刃有余的操作各種數(shù)據(jù)庫中的數(shù)據(jù) 。 JDBC 是 Java與許多數(shù)據(jù)庫實現(xiàn)不相關連接的工業(yè)標準 ,為基于 SQL數(shù)據(jù)庫訪問提供調用應用 級 編程 的 接口 。 (二 ) JDBC的特點及功能 JDBC是一種可以用于執(zhí)行 SQL語句的 Java API( Java應用程序接口) ,它 完全由 Java 語言編寫 的類和 接口 組成 ,具有很好的平臺無關性 ,同時它 完全 按照 SQL 的標準 設計 而成 ,不 4 像其它語言只支持特定的 SQL語句 。 JDBC驅動程序將來自 Java 程序的 SQL 指令轉換成數(shù)據(jù)庫自身的 API,由它對數(shù)據(jù)庫 進行 操作 。 簡單的說 ,JDBC完成下列三件事: ( 1)與數(shù)據(jù)庫建立連接。 ( 3)處理數(shù)據(jù)庫返回的結果。 他們主要分 為如下四類 : JDBCODBC Bridge,Java to Native API, Net Protocol All Java 和 Pure JDBC Driver。 可能是因為 ODBC已經(jīng)比較成熟了 ,使用的人較多 ,所以很多人還是習慣使用 JDBCODBC Bridge作為驅動來連接 Java與數(shù)據(jù)庫 。 JDBCODBC Bridge將“ Java程序 ” 中的 JDBC操作翻譯成 C語言 ODBC API,然后這些 ODBC被傳遞給適當?shù)?ODBC驅動程序 ,由ODBC驅動來 直接 與數(shù)據(jù)庫發(fā)生聯(lián)系。 2. Java to Native API 這類驅動 把 JDBC調用轉換為 Oracle ,SQL Server,Sybase,Informix,DB2或其它 DBMS本身所帶驅動程序的調用 , 其驅動程序主要由數(shù)據(jù)庫廠商提供 ,如 微軟的 microsoft SQL Server 2020 Driver for JDBC就屬于此類驅動 。 其訪問數(shù)據(jù)庫的結構 如圖 22所示 , Java to Native API使用 Java 的 Native Methods Interface(本機方法接口 ),把 “ Java程序 ” 中的JDBC數(shù)據(jù)請求轉換成“廠家提供的驅動程序 ” 相對應的具體數(shù)據(jù)庫的特定調用 。 圖 22 本地 API部分用 Java編寫的驅動程序 [4] 3. Net Protocol All Java Net Protocol All Java是 用三層方法實現(xiàn) 的 , 如圖 23所示 :“ Java程序 ” 中的 JDBC數(shù)據(jù)庫請求 憑借這種 三層 方法被轉換成數(shù)據(jù)庫獨立的網(wǎng)絡協(xié)議 ,并傳遞給中間層服務器 ,然后中間層服務器 通過“中間網(wǎng)絡層 ” 把該請求轉換成 “ 數(shù)據(jù)庫 固有產品驅動程序 ” 的本地連接性接口 ,最后把該請求傳遞給數(shù)“ DMBC服務器 ” 。 與其它類型 6 的驅動程序相比 ,這種驅動程序的優(yōu)點在于它的性能 ,在客戶和數(shù)據(jù)引擎之間沒有 任何本地代碼和中間代件 。它 的結構如圖 24所示 : 圖 24 純 Java 網(wǎng)絡 驅動程序 [4] (四 ) JDBC的結構 JDBC作為 Java數(shù)據(jù)庫連接的工具 ,是與 SQL數(shù)據(jù)源 進行交互的關系型數(shù)據(jù)庫對象和方法的集合 。上層的 JDBC API與下層的 JDBC Driver API通信 ,再將各種 SQL語句傳遞給它的 “ JDBC 驅動器 \管理器 ” 與各種第三方驅動程序 (如 :JDBC_ODBC 橋 ,數(shù)據(jù)庫專用驅動 ,數(shù)據(jù) 庫協(xié)議驅動等 )通信 ,驅動程序直接與數(shù)據(jù)庫連接 ,執(zhí)行指定的操作 ,并將結果返回 。 面向底層的 JDBC Driver API,主要是針對數(shù)據(jù)庫廠商開發(fā)數(shù)據(jù)庫底層驅動程序使用的,一般情況下開發(fā)應用程序的程序員是用不到這些類庫的 。 面向程序開發(fā)人員的 JDBC API,被描述為一組 類和 抽象的 Java接口,通過這些接口應用程序可以對某個數(shù)據(jù)庫打 開連接,執(zhí)行 SQL語句并且處理結果,其中各接口的關系如圖 2- 6所示。 圖 2- 6 JDBC API 結構圖 (五 ) JDBC 結構中重要的類及其常用方法 1. 這個類代表一個特定的 JDBC 實現(xiàn),當 Driver 被裝載時,它應該創(chuàng)建一個本身的實例,并使用 DriverManger 類注冊這個實例。 Driver 對象支持一個應用程序連接一個或多個數(shù)據(jù)庫。第一個成功被使用的 Driver將被此 URL使用。 DriverManger類作為 JDBC的管理DiverManager (驅動程序管理器 ) Connection(連接) Connection(連接) Statement 語句 Statement 語句 Statement 語句 Resultset(結果集 ) Resultset(結果集 ) 8 層,負責尋找并裝載與 URL指定的數(shù)據(jù)庫相符的 JDBC驅動程序,該驅動程序與數(shù)據(jù)庫相連,返回一個 對象。 對簡單的應用程序,一般程序員需要在這個類中直接使用的唯一方法是( )。 3. 該類負責建立與數(shù)據(jù)庫服務器的連接,是一個用于與數(shù)據(jù)庫交互的類,它 為應用程序提供了對話的 Statement 對象(當然也包括 Statement 對象的子類 PreparedStatement 和CallableStatement 的對象 ) 。它代表與某 些 數(shù)據(jù)庫的連接,支持 SQL聲明的建立。如表 2- 1 表 2- 1 Connection類的常用方法 [13] 方 法 說 明 close() 釋放當前連接的數(shù)據(jù)庫和 JDBC資 源 mit() 手動提交,自上次提交或回退以來所作的修改,然后釋放數(shù)據(jù)庫鎖 setAutoCommit() 打開 /關閉連接的自動提交模式, true表示自動, false表示手動 createStatement() 創(chuàng)建一個本連接的 Statement 對象,該對象可以用來執(zhí)行相應的 SQL操作。 這些對象都是專用于發(fā)送特定類型的 SQL語句的,他們的區(qū)別在于 Statement對象用于執(zhí)行不帶參數(shù)的 SQL語句, PreparedStatement 對象用于帶或不帶 IN參數(shù)的預編譯 SQL 語句, CallableStatement對象用于執(zhí)行對 數(shù)據(jù)庫已存儲過程的調用。 Statement stmt ()。 有以 下 幾 個: execute()執(zhí)行一個可能返回多個結果集的 SQL 語句; executeQuery()執(zhí)行返回一個 ResultSet 對象結果的 SELECT 語句;executeUpdate()執(zhí)行一個不返回 ResultSet對象的刪除 delect 、插入 insert into、或更改 update的 SQL 語句; close()該方法的作用是釋放資源 ,getResultSet()方法的作用是為一個 ResultSet 對象返回當前的結果。 5. 該類是用來分析 SQL查詢語句的結果,它包含符合 SQL語句中的所有行,并且它能通過一套 getXXX()方法 對這些行中 的 數(shù)據(jù) 進行 訪問。 獲得一 行 數(shù)據(jù)后 ,ResultSet 對象可以使用位置索引 (第一列使用 1,第二列使用 2?? )或使用列名稱 ,就可以通過 getXXX()方法獲得字段值 了 。 表 22是具體的 getXXX()方法 : 表 2- 2 ResultSet對象的 getXXX()方法 [2] 返回類型 方法名稱及其參數(shù) byte getByte(int columnIndex) Date getDate(int columnIndex) double getDouble(int columnIndex) float getFloat(int columnIndex) int getInt(int columnIndex) long getLong(int columnIndex) String getString(int columnIndex) byte getByte(String columnName) Date getDate(String columnNam) double getDouble(String columnNam) float getFloat(String columnNam) int getInt(String columnNam) long getLong(String columnNam) String getString(String columnNam) (六 ) JDBC典型應用模型 10 在實際應用中我們可以采用 兩種開發(fā)模型 ,一種是兩層開發(fā)模型 ,另一種是三層 (或多層 )開發(fā)模型 。 這種配置就是客戶機 /服務器配置 。 在三層結構中 數(shù)據(jù)庫操作命令發(fā)送到中間層 ,由中間層將操作命令所要求的 SQL語句發(fā)送給數(shù)據(jù)庫 ,數(shù)據(jù)庫將 SQL語句的結果返回到中間層 ,中間層在將結果返回給應用 程序 ,客戶端與中間層連接有 很多種途徑 ,比如客戶機是網(wǎng)絡瀏覽器 的 ,可通過HTTP協(xié)議將操作命令送到中間層 ,如果中間層為一般的 Java應用程序 ,中間層在另一臺網(wǎng)絡計算機上 ,可以通過 RMI(Remote Method Invocation)遠程方法調用聯(lián)系 ,也可以在同一臺計算機上建立客戶端和中間服務層 ,只需要將程序所需要的各數(shù) 據(jù)庫功能模塊封裝在獨立的Java類里就可以了 。 (2)將數(shù)據(jù)庫從客戶端脫離出來 ,減小了客戶端的設計難度 .(3)可以單獨優(yōu)化中間層 ,以求獲得更高的速訪問速率 。 一個 JDBC基本程序應該包括的步驟有: 1. 加載 包和 必要的類 package 包名 。 import .*。 import .*。 import .*。 import .*。 2. 連接數(shù)據(jù)庫 11 (1) 加載 JDBC驅動程序 要通過 JDBC來連接數(shù)據(jù)庫,應用程序必需加載 JDBC驅動程序,這樣才可能建立與數(shù)據(jù) 庫的連接。但要先 加載 我們的驅動程序, 方法有兩種 : 1).通過 調用 ()方法 ,該方法是顯示的加載驅動類 ,由于與外部設置無關 ,因此這是一種較好的選擇 。 下邊給出 三 個實例 : a). (“ sun,” )。 //加載的是 microsoft SQL Server 2020 Driver for JDBC c). (“ ” )。 屬性包含一個驅動程序管理器 可激活 驅動程序的名字列表。如: =:。 JDBC使用 URLs 來標識驅動程序和數(shù)據(jù)源這兩者的位置 [10],格式如下: jdbc:子協(xié)議 :數(shù)據(jù)庫子名稱 其中 jdbc作為協(xié)議是 固定不變的 , 子協(xié)議 部分是 數(shù)據(jù)庫機制的名稱 ,如果數(shù)據(jù)庫在其它計算機上 ,還可以將端口號作 為 URL的一部分 。 具有上邊的知識,我們下邊給出 JDBC與 常用的數(shù)據(jù)庫連接的代碼 (JDBC與 Access的連接這里沒有給出 ,因為在后邊 開發(fā) 的 “ 簡單銀行系統(tǒng) ” 中我們使用的就是 Access 作為數(shù)據(jù)庫 ,在那里有 更詳細的說明 ) , 這些代碼現(xiàn)在就比較容易看懂了。 String url=“ jdbc: //test為數(shù)據(jù)庫名程 String user=“ 用戶名 ” ; String password=“密碼”; Connection conn =(url,user,password)。 2)鏈接 Oracle 9i數(shù)據(jù)庫 [7] (“ ” )。 Statement stmt=( )。 3. 數(shù)據(jù)庫的操作 1). 建立一個 Statement對象 Statement 類是接口類,所有不能直接實例化一個 Statement 對想,而是調用一個Connection 對 象 的 createStatement() 方 法 來 獲 取 , 如 : Statement stmt =(),當建立了一個 Statement對象后就可以根據(jù)不同的需要,通過調用 executeQuery()、 executeUpdate()、 execute()三個方法來執(zhí)行數(shù)據(jù)庫事務了。 2). 建立一個 ResultSet對象 ResultSet對象是用來保存和 執(zhí)行 SQL查詢語句返回結果的對象, 含有 SQL執(zhí)行后產生的表 ,方法為 : ResultSet rs=(“ select * from 數(shù)據(jù)庫 中的表 名 ” )。 4. 異常處理 因為 訪問 數(shù)據(jù)庫 時 可能
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1