成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JDBC驅動設置淺析

開發 后端
本文向您介紹JDBC的驅動設置,DriverManager類是JDBC的管理層,作用于用戶和驅動程序之間。

1、概述

DriverManager 類是 JDBC 的管理層,作用于用戶和驅動程序之間。它跟蹤可用的驅動程序,并在數據庫和相應JDBC驅動設置程序之間建立連接。另外,DriverManager 類也處理諸如驅動程序登錄時間限制及登錄和跟蹤消息的顯示等事務。

對于簡單的應用程序,一般程序員需要在此類中直接使用的唯一方法是 DriverManager.getConnection。正如名稱所示,該方法將建立與數據庫的連接。JDBC 允許用戶調用 DriverManager 的方法 getDriver、getDrivers 和 registerDriver 及 Driver 的方法 connect。但多數情況下,讓 DriverManager 類管理建立連接的細節為上策。

2、跟蹤可用驅動程序

DriverManager 類包含一列 Driver 類,它們已通過調用方法 DriverManager.registerDriver 對自己進行了注冊。所有 Driver 類都必須包含有一個靜態部分。它創建該類的實例,然后在加載該實例時 DriverManager 類進行注冊。這樣,用戶正常情況下將不會直接調用 DriverManager.registerDriver;而是在加載驅動程序時由驅動程序自動調用。加載 Driver 類,然后自動在 DriverManager 中注冊的方式有兩種:

通過調用方法 Class.forName。這將顯式地加載驅動程序類。由于這與外部設置無關,因此推薦使用這種加載JDBC驅動設置程序的方法。以下代碼加載類 acme.db.Driver:

Class.forName("acme.db.Driver");

如果將 acme.db.Driver 編寫為加載時創建實例,并調用以該實例為參數的 DriverManager.registerDriver(本該如此),則它在 DriverManager 的驅動程序列表中,并可用于創建連接。

通過將驅動程序添加到 java.lang.System 的屬性 jdbc.drivers 中。這是一個由 DriverManager 類加載的驅動程序類名的列表,由冒號分隔:初始化 DriverManager 類時,它搜索系統屬性 jdbc.drivers,如果用戶已輸入了一個或多個驅動程序,則 DriverManager 類將試圖加載它們。以下代碼說明程序員如何在 ~/.hotjava/properties 中輸入三個驅動程序類(啟動時,HotJava 將把它加載到系統屬性列表中):

jdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad.test.ourDriver;

對 DriverManager 方法的第一次調用將自動加載這些驅動程序類。

注意:加載驅動程序的第二種方法需要持久的預設環境。如果對這一點不能保證,則調用方法 Class.forName 顯式地加載每個JDBC驅動程序就顯得更為安全。這也是引入特定驅動程序的方法,因為一旦 DriverManager 類被初始化,它將不再檢查 jdbc.drivers 屬性列表。

在以上兩種情況中,新加載的 Driver 類都要通過調用 DriverManager.registerDriver 類進行自我注冊。如上所述,加載類時將自動執行這一過程。

由于安全方面的原因,JDBC 管理層將跟蹤哪個類加載器提供哪個驅動程序。這樣,當 DriverManager 類打開連接時,它僅使用本地文件系統或與發出連接請求的代碼相同的類加載器提供的驅動程序。

3、建立連接

加載 Driver 類并在 DriverManager 類中注冊后,它們即可用來與數據庫建立連接。當調用 DriverManager.getConnection 方法發出連接請求時,DriverManager 將檢查每個驅動程序,查看它是否可以建立連接。

有時可能有多個 JDBC 驅動程序可以與給定的 URL 連接。例如,與給定遠程數據庫連接時,可以使用 JDBC-ODBC 橋驅動程序、JDBC 到通用網絡協議驅動程序或數據庫廠商提供的驅動程序。在這種情況下,測試驅動程序的順序至關重要,因為 DriverManager 將使用它所找到的第一個可以成功連接到給定 URL 的驅動程序。

首先 DriverManager 試圖按注冊的順序使用每個驅動程序(jdbc.drivers 中列出的驅動程序總是先注冊)。它將跳過代碼不可信任的驅動程序,除非加載它們的源與試圖打開連接的代碼的源相同。

它通過輪流在每個驅動程序上調用方法 Driver.connect,并向它們傳遞用戶開始傳遞給方法 DriverManager.getConnection 的 URL 來對JDBC驅動設置程序進行測試,然后連接第一個認出該 URL 的驅動程序。

這種方法初看起來效率不高,但由于不可能同時加載數十個驅動程序,因此每次連接實際只需幾個過程調用和字符串比較。

以下代碼是通常情況下用JDBC驅動設置程序(例如 JDBC-ODBC 橋驅動程序)建立連接所需所有步驟的示例:

  1. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加載驅動程序   
  2. String url = "jdbc:odbc:fred";   
  3. DriverManager.getConnection(url, "userID""passwd");  

 

【編輯推薦】

  1. J2EE的核心技術之JDBC簡介篇
  2. JDBC分布式事務淺析
  3. JDBC驅動類別淺析
  4. JBoss JDBC驅動報錯問題分析與解決
  5. JDBC與JSP簡單模擬MVC三層架構
責任編輯:佚名 來源: 網絡轉載
相關推薦

2009-06-19 15:08:23

JDBC驅動

2009-06-19 15:28:31

JDBC分布式事務

2009-07-15 15:30:12

MyEclipse J

2009-07-20 13:58:07

MySQL JDBC驅

2021-05-13 07:58:05

JDBC接口PreparedSta

2009-07-06 18:17:46

JDBC驅動程序

2010-04-16 16:12:51

jdbc分頁

2009-07-22 15:58:34

JDBC調用Oracl

2021-09-08 09:22:23

領域驅動設計

2009-07-14 16:02:42

JDBC例子

2010-09-29 14:30:54

路由DHCP設置

2009-07-15 17:19:31

iBATIS Ecli

2009-12-01 14:46:36

Open Suse安裝

2011-06-29 15:14:22

Qt Embedded 鍵盤

2011-06-29 15:36:21

Qt Embedded 鍵盤

2009-06-16 14:08:10

JBoss JDBC驅

2009-06-15 14:18:00

netbeans配置JDBC驅動程序

2010-09-16 10:21:47

PPPoE Serve

2009-09-04 10:10:33

Visual Basi

2021-06-28 10:25:47

MySQL語句接口
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美一级片 | 91佛爷在线观看 | 草在线| 国产欧美精品一区二区色综合朱莉 | 久久久久国色av免费观看性色 | 久久国产精品久久 | 人妖一区 | 99视频在线看 | 国产精品久久久久久久久久久久冷 | 日韩一区二区久久 | 成人久久| 免费看啪啪网站 | 欧州一区二区 | 国产精品美女久久久av超清 | 国产福利久久 | 国产一二区视频 | 国产精品国产三级国产aⅴ中文 | 九九在线精品视频 | 国产视频在线观看一区二区三区 | 一区二区免费高清视频 | 亚洲国产二区 | 免费特黄视频 | 欧美国产精品一区二区 | 一二区视频 | 国精日本亚洲欧州国产中文久久 | 亚洲欧洲精品一区 | 欧美视频一区 | 欧美一级片久久 | 亚洲伊人久久综合 | 久久av网站 | 久久久久九九九女人毛片 | 精品成人佐山爱一区二区 | 曰韩三级 | 欧美a区| 亚洲一区二区三区视频在线 | 欧美另类视频 | 中文一区| 在线免费观看色 | 亚洲日韩中文字幕一区 | 亚洲一区二区在线播放 | 亚洲一区二区三区视频 |