【資料庫學習筆記】(2)JDBC載入並註冊資料庫驅動並串連資料庫,學習筆記jdbc
jdbc載入資料庫驅動的有幾種方式分別都是什
type 4:本地協議驅動Type 1: jdbc-odbc橋Jdbc-odbc 橋 是sun公司提供的,是jdk提供的的標準api. 這種類型的驅動實際是把所有 jdbc的調用傳遞給odbc ,再由odbc調用本機資料庫驅動代碼.( 本機資料庫驅動代碼是指 由資料庫廠商提供的資料庫操作二進位程式碼程式庫,例如在oracle for windows中就是oci dll 文 件)jdbc-odbc橋 | odbc | 廠商DB代碼---------------資料庫Server只要本地機裝有相關的odbc驅動那麼採用jdbc-odbc橋幾乎可以訪問所有的資料庫,jdbc- odbc方法對於用戶端已經具備odbc driver的應用還是可行的.但是,由於jdbc-odbc先調用 odbc再由odbc去調用本機資料庫介面訪問資料庫.所以,執行效率比較低,對於那些大資料量 存取的應用是不適合的.而且,這種方法要求用戶端必須安裝odbc 驅動,所以對於基於 internet ,intranet的應用也是不合適的.因為,你不可能要求所有客戶都能找到odbc driver.=====一般ACCESS用到的比較多,初學者用。實際項目是不用的。Type 2: 本地Api驅動本地api驅動直接把jdbc調用轉變為資料庫的標準調用再去訪問資料庫.這種方法需要本地 資料庫驅動代碼. 本地api驅動 | 廠商DB代碼---------------資料庫Server (圖二) 這種驅動比起jdbc-odbc橋執行效率大大提高了.但是,它仍然需要在用戶端載入資料庫廠商 提供的程式碼程式庫.這樣就不適合基於internet的應用.並且,他的執行效率比起3,4型的jdbc驅動 還是不夠高.Type3:網路通訊協定驅動 這種驅動實際上是根據我們熟悉的三層結構建立的. jdbc先把對數局庫的訪問請求傳遞給網 絡上的中介軟體伺服器. 中介軟體伺服器再把請求翻譯為符合資料庫規範的調用,再把這種調用 傳給資料庫伺服器.如果中介軟體伺服器也是用java開法的,那麼在在中介層也可以使用1,2型 jdbc驅動程式作為訪問資料庫的方法. 網路通訊協定驅動---------中介軟體伺服器------------資料庫Server由於這種驅動是基於server的.所以,它不需要在用戶端載入資料庫廠商提供的程式碼程式庫.而且 他在執行效率和可升級性方面是比較好的.因為大部分功能實現都在server端,所以這種驅動 可以設計的很小,可以非常快速的載入到記憶體中. 但是,這種驅動在中介軟體層仍然需要有配置 其它資料庫驅動程式,並且由於多了一個中介層傳遞資料,它的執行效率還不是最好.Type4 本地協議驅動這種驅動直接把jdbc調用轉換為符合相關資料庫系統規範的請求.由於4型驅動寫的應用可 以直接和資料庫伺服器通訊.這種類型的驅動完全由java實現,因此實現了平台獨立性. 本地協議驅動---------資料庫Server由於這種驅動不需要先把jdbc的調用傳給odbc或本機資料庫介面或者是中介層伺服器.所 以它的執行效率是非常高的.而且,它根本不需要在用戶端或伺服器端裝載任何的軟體或驅動. 這種驅動程式可以動態被下載.但是對於不同的資料庫需要下載不同的驅動程式.Jdbc-odbc橋由於它的執行效率不高,更適合做為開發應用時的一種過度方案,或著對於初學 者瞭解jdbc編程也較適用. 對於那些需要大資料量操作的應用程式則應該考慮2,3,4型驅動.在intranet方面的應用可以 考慮2型驅動,但是由於3,4型驅動在執行......餘下全文>>
怎用mysql實現ODBC(JDBC橋)串連資料庫?
步驟(1):載入要使用的資料庫驅動程式類,該工作由Class類的靜態方法forName完成,他載入向相應的驅動程式類,並建立該類的一個執行個體。載入JDBC-ODBC橋驅動類採用如下語句:
Class.forName("classname");
(2):聲明一個Connection介面的對象。如:
Connection conn;
(3)並使用driverManager類的靜態方法getConnection建立資料庫連接,該方法主要有兩種重載形式:
Connection getConnection(String url);
Connection getConnection(String url,String user,String password)
例子:
import java.sql.Connection;
import java.sql.DriverManager;
public class Conn {
// 非連結池
public static Connection getConn() {
// 建立連線物件
Connection conn = null;
// 說明JDBC驅動類所在位置的字串,與驅動所在目錄對應。
String driver = "com.mysql.jdbc.Driver";
// MySQL的JDBC URL 字串
// 串連到本地主機,連接埠為3306,資料庫為mysql,
String sourse = "jdbc:mysql://127.0.0.1:3306/dq?characterEncoding=utf-8";
try {
// 初始化MySQL的JDBC橋驅動類
Class.forName(driver);
// 使用DriverManager類的getConnection方法建立串連。url=sourse,使用者名稱為root,密碼為空白。
conn = DriverManager.getConnection(sourse, "root", "");
} catch (Exception e) {
System.out.println(e.toString());
}
// 返回連線物件
return conn;
}
public static void main(String[] args) {
System.out.println(Conn.getConn());
}
}
// import java.sql.*;
//
// public class mysqlDEMO{
// public static void main(String []args)throws Exception{
// ......餘下全文>>