亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JDBC系列教程(二)---驅動設置

2019-11-18 13:58:37
字體:
來源:轉載
供稿:網友

  本文出自: www.dukejava.com 作者:javaduke

DriverManager
本概述摘自《JDBCTM Database access from JavaTM: A Tutorial and Annotated Reference》,目前正由 JavaSoft 繼續編寫。這本書既是 JDBC 的教程,也是一本權威性參考手冊,將作為 Java 系列的一部分在 1997 年春季由 Addison-Wesley 出版公司出版。

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

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


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


通過調用方法 Class.forName。這將顯式地加載驅動程序類。由于這與外部設置無關,因此推薦使用這種加載驅動程序的方法。以下代碼加載類 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 顯式地加載每個驅動程序就顯得更為安全。這也是引入特定驅動程序的方法,因為一旦 DriverManager 類被初始化,它將不再檢查 jdbc.drivers 屬性列表。

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

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


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

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

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

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

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

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线观看免费全集电视剧网站| 91老司机精品视频| 亚洲精选一区二区| 欧美日韩精品在线视频| 亚洲人成人99网站| 国产精品久久久久久五月尺| 伊人激情综合网| 这里只有精品在线观看| 中文字幕日韩av电影| 成人中文字幕+乱码+中文字幕| 久久99国产综合精品女同| 成人欧美一区二区三区黑人孕妇| 日韩暖暖在线视频| 午夜精品福利视频| 精品国产美女在线| 日韩精品极品视频免费观看| 亚洲在线免费看| 欧美中文字幕在线播放| 91精品久久久久久久久久久| 日韩中文在线观看| 久久亚洲精品网站| 日韩av手机在线观看| 日韩最新中文字幕电影免费看| 91久久久在线| 亚洲精品第一页| 中文字幕免费精品一区高清| 久久成人免费视频| 国产精品视频在线观看| 欧美性猛交xxxx久久久| 97久久国产精品| 国产精品成人一区二区三区吃奶| 亚洲欧美中文字幕| 国产v综合v亚洲欧美久久| 久久久精品国产亚洲| 草民午夜欧美限制a级福利片| 久久久国产精品一区| 日本精品久久久| 久久在线免费视频| 欧美成人精品在线| 国产自产女人91一区在线观看| 亚洲福利视频二区| 欧美限制级电影在线观看| 国产乱人伦真实精品视频| 国产精品白嫩初高中害羞小美女| 精品视频在线播放免| 精品亚洲一区二区三区| 久久夜精品va视频免费观看| 日韩欧美综合在线视频| 久久91亚洲精品中文字幕奶水| 国产午夜精品一区二区三区| 国产精品老女人精品视频| 一本色道久久综合狠狠躁篇怎么玩| 国产一区二区精品丝袜| 日韩电影大片中文字幕| 欧美精品精品精品精品免费| 成人免费午夜电影| 日韩av电影在线网| 欧美视频在线免费看| 在线丨暗呦小u女国产精品| 精品国偷自产在线视频99| 国产精品爽黄69天堂a| 91免费精品视频| 国产精品吴梦梦| 亚洲三级免费看| 中文字幕日韩av| 九九久久综合网站| 97香蕉超级碰碰久久免费的优势| 国产精品福利网| 中文字幕在线亚洲| 色婷婷综合久久久久中文字幕1| 国产欧美精品久久久| 91精品国产91久久久久久| 亚洲第一精品夜夜躁人人爽| 亚洲xxx视频| 九九久久精品一区| 成人午夜在线影院| 欧美亚洲视频在线看网址| 欧美日韩色婷婷| 中文字幕av日韩| 国产精品香蕉国产| 青青草原成人在线视频| 91精品国产91久久久久久久久| 久久伊人免费视频| 亚洲国产精品久久久久秋霞蜜臀| 亚洲人在线视频| 国产精品自拍视频| 亚洲第一级黄色片| 一区二区欧美亚洲| 精品久久久在线观看| 亚洲第一页自拍| 国产深夜精品福利| 精品日韩美女的视频高清| 亚洲一区二区三区久久| 午夜精品一区二区三区在线播放| 亚洲精品国产欧美| 成人国产精品av| 在线观看日韩欧美| 日韩国产在线播放| 国产精品自拍小视频| 国产精品成久久久久三级| 久久成人这里只有精品| 97视频在线观看免费| 91av在线免费观看| 欧洲中文字幕国产精品| 国产精品999| 久久噜噜噜精品国产亚洲综合| 欧美激情视频在线| 亚洲国产欧美精品| 亚洲一区二区免费在线| www.国产精品一二区| 欧美乱大交xxxxx| 久久久久久久久久久久久久久久久久av| 亚洲国产精品久久久久| 国产精品揄拍一区二区| 欧美成人第一页| 久久香蕉国产线看观看av| 黑人巨大精品欧美一区二区一视频| 国产成人精品av在线| 曰本色欧美视频在线| 91精品国产综合久久香蕉的用户体验| 乱亲女秽乱长久久久| 精品偷拍各种wc美女嘘嘘| 久久在线观看视频| 成人午夜小视频| 国产精品ⅴa在线观看h| 国产精品观看在线亚洲人成网| 日韩中文字幕在线精品| 久久久久久一区二区三区| 国产精品v日韩精品| 91视频免费在线| 欧美大学生性色视频| 色综合天天综合网国产成人网| 国产激情999| 色综合伊人色综合网站| 亚洲最大的成人网| 欧美电影免费观看高清| 国内伊人久久久久久网站视频| 久久99国产精品久久久久久久久| 国模视频一区二区三区| 成人黄色激情网| 亚洲欧美变态国产另类| 97精品国产97久久久久久春色| 国产精品免费一区二区三区都可以| 欧美精品videosex牲欧美| 3344国产精品免费看| 国产精品视频白浆免费视频| 国内精品久久久久伊人av| 亚洲欧洲成视频免费观看| 精品久久中文字幕| 欧美xxxx综合视频| 国产69精品久久久久久| 2018中文字幕一区二区三区| 懂色aⅴ精品一区二区三区蜜月| 亚洲综合第一页| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲一区二区免费在线| 亚洲精品乱码久久久久久金桔影视| 欧美亚洲视频一区二区| 大伊人狠狠躁夜夜躁av一区| 亚洲综合社区网| 在线播放国产一区二区三区| 国产999精品视频| 欧美激情综合色| 久久久久99精品久久久久|