傳智播客Java培訓---JDBC

liuxiaolei7676發表於2010-05-28

    大多數情況下,特別是企業級應用,資料需要進行持久化儲存,以便於以後使用,在以前沒有學習資料庫的時候,我們都是將資料存放在本地硬碟檔案或者XML資料檔案中,比如說前一段時間做的小型圖書管理系統和通訊錄,都是將資訊和資料存放在XML檔案中,但是這很不方便而且安全性不高,大多數情況下都是將資料存放在像mysql這類關係型資料庫中,而現在,在我們學習了資料庫的基本操作以及JDBC後,我們就可以實現這個操作。

JDBCJava Data Base Connectivity,java資料庫連線)是一種用於執行SQL語句的Java API,可以為多種關聯式資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。在Java中,資料庫存取技術可分為JDBC直接訪問資料庫和使用第三方O/R工具,如hibernateibatis等,JDBCJava訪問資料庫的基石,其他技術都是對JDBC的封裝。

目前有四種可供使用的JDBC驅動程式,JDBC-ODBC橋、部分本地API部分Java的驅動程式、JDBC網路純Java驅動程式、本地協議的純java驅動程式,這四種中,本地協議的純java驅動程式是最成熟的JDBC驅動程式,不但無需再使用者計算機上安裝額外驅動,也不需要在伺服器端安裝任何中介程式,所有的存取操作,都直接由驅動程式完成。

開發的基本步驟

1、註冊驅動

2、開啟連線

3、準備請求

4、執行請求

5、處理結果

6、釋放資源

註冊驅動:

今天介紹了三種裝載驅動程式的方法:

       (1) java.sql.Driver driver = new com.mysql.jdbc.Driver();

       (2) DriverManager.registerDriver(new com.mysql.jdbc.Driver());

       (3) Class.forName("com.mysql.jdbc.Driver");

一般使用第三種方法來裝載驅動建立連線,因為Driver類中都包含靜態程式碼塊,在靜態程式碼塊中,會呼叫DriverManager.registerDriver() 方法來註冊自身的一個例項

 

開啟連線:

介面Connection

表示與特定資料庫的連線(會話)。用來表示資料庫連線的物件,對資料庫的一切操作都是在這個連線的基礎上進行的。

Connection conn = DriverManager.getConnection(url, username, password);

其中url=主協議:子協議://要連線的資料庫地址:埠號/資料庫名稱

 

準備請求:

對資料庫的請求就是傳送SQL語句給資料庫。

Statement介面

作用:用於執行靜態SQL 語句並返回它所生成結果的物件。用於在已經建立的連線的基礎上向資料庫傳送SQL語句的物件。包括執行SQL語句和獲取返回結果的方法。一般來說,不太推薦在select後面使用*,因為效率比較低。

使用Connection介面中的createStatement方法,獲取Statement介面物件

conn = conn.createStatement();

 

執行請求(獲取結果):

ResultSet介面

表示資料庫結果集的資料表,通常通過執行查詢資料庫的語句生成。

Statement介面執行SQL語句讀寫資料的方法:executeQueryexecuteUpdate

查詢資料(讀資料,取資料):executeQuery方法用於產生單個結果集的SQL語句,如SELECT語句

更改資料(寫資料,存資料):executeUpdate方法用於執行INSERT UPDATEDELETEDDL(資料定義語言)語句。executeUpdate 的返回值是一個整數,表示它執行的SQL語句所影響的資料庫中的表的行數(更新計數)。

 

處理結果:

ResultSet介面

表示資料庫結果集的資料表,通常通過執行查詢資料庫的語句生成。可以看作是“記憶體”的一張二維表。

處理ResultSet中資料

定位行

ResultSet物件使用游標指向當前資料行。開始時游標被置於第一行之前(不是在處於

第一行)。

定位列

藉助列名或者列的編號(編號是從1開始),列的順序取決於select 後面的欄位的順序。

取值:(從資料庫中找到對應的值)

提供了一套 get 方法對已經定位的資料進行訪問。

getXXX(列號,列的資料型別)

 

釋放資源:

資源包括:ResultSet,Statement,Connnection

使用完後立即釋放資源是一個好習慣,可避免對資料庫資源的佔用。 不等待該物件自動關閉時釋放資源。注意關閉順序是從內到外,ResultSet-Statement-Connnection.

 

相關文章