日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

java jdbc(mysql)驱动源码分析,JAVA JDBC(MySQL)驱动源码分析(四)

發布時間:2024/4/17 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java jdbc(mysql)驱动源码分析,JAVA JDBC(MySQL)驱动源码分析(四) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

connect方法是java.sql.Driver接口中定義的方法,如果連接的數據庫不同,那么為不同的數據庫編寫JDBC驅動將變得很靈活,實現Driver接口即可。連接數據庫時首先得裝載JDBC驅動,也就是調用 Class.forName(“com.mysql.jdbc.Driver”)方法,在第一篇中已經列出mysql jdbc Driver類的源碼,此類繼承NonRegisteringDriver同時實現了java.sql.Driver接口。找到NonRegisteringDriver類會發現它也實現了java.sql.Driver接口:

public class NonRegisteringDriver implements java.sql.Driver {

……

}

在getConnection方法中有如下一句代碼,

Connection result = di.driver.connect(url, info);

di是DriverInfo類型的對象,此對象中包含了Driver的引用,但是在com.mysql.jdbc.Driver類中只有一個靜態塊和一個構造方法,那么connect方法有可能是在其父類中實現。如前所述,父類為NonRegisteringDriver,在mysql驅動包的源碼中可以找到此類,:

com.mysql.jdbc.NonRegisteringDriver

那么di.driver.connect(url, info) 調用的connect方法就是NonRegisteringDriver類中的connect方法,源碼如下:

public java.sql.Connection connect(String url, Properties info)

throws SQLException {

if (url != null) {

if (StringUtils.startsWithIgnoreCase(url, LOADBALANCE_URL_PREFIX)) {

return connectLoadBalanced(url, info);

} else if (StringUtils.startsWithIgnoreCase(url,

REPLICATION_URL_PREFIX)) {

return connectReplicationConnection(url, info);

}

}

Properties props = null;

if ((props = parseURL(url, info)) == null) {

return null;

}

try {

Connection newConn = com.mysql.jdbc.ConnectionImpl.getInstance(

host(props), port(props), props, database(props), url);

return newConn;

} catch (SQLException sqlEx) {

// Don't wrap SQLExceptions, throw

// them un-changed.

throw sqlEx;

} catch (Exception ex) {

SQLException sqlEx = SQLError.createSQLException(Messages

.getString("NonRegisteringDriver.17") //$NON-NLS-1$

+ ex.toString()

+ Messages.getString("NonRegisteringDriver.18"), //$NON-NLS-1$

SQLError.SQL_STATE_UNABLE_TO_CONN

總結

以上是生活随笔為你收集整理的java jdbc(mysql)驱动源码分析,JAVA JDBC(MySQL)驱动源码分析(四)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。