国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

jdbc.postgresql源碼分析

SKYZACK / 2528人閱讀

摘要:還沒接觸源碼的時候,對的執行過程一頭霧水,不知道他是如何執行操作的。它在注冊之前先檢查是否已經注冊,存在的話拋出異常。反之,使用類將驅動注冊。文件內容是實現類的包名到類名。源碼具體分析,在接下來的學習中將持續更新。

還沒接觸源碼的時候,對jdbc的執行過程一頭霧水,不知道他是如何執行crud操作的。但是,我在使用的時候發現Class.forNmae(Driver).這個代碼。這時候我猜想它是使用反射機制。查看源碼果然是這樣。Driver類通過靜態代碼塊在Driver類被加載進內存的時候執行register()方法,將驅動進行注冊。它在注冊之前先檢查是否已經注冊,存在的話拋出異常。反之,使用DriverManager類將驅動注冊。


PgConnection使用通過DriverManger.getConnection()方法獲得,這其實時調用PGConnection的構造方法進行初始化,然后調用Driver類的connect()方法返回實例。

同理,PgStatement也是在createPgStatemnt方法中對PgStatement實例進行初始化。具體圖片不在展示,它們都調用System.getDefaultProperties()方法獲取連接參數,設置具體的執行過程。

jdbc中采用javaSPI機制,也就是它們給予java.sql包中的接口執行具體實現,所謂spi機制我的理解就是聲明一系列接口,或者說制定好標準,然后由具體類去實現。我猜jdbc的其它數據庫驅動應該也是這種模式。在resource的meta-info下有個service文件夾,里面建立接口的文件,名字是包名到接口名稱。文件內容是實現類的包名到類名。然后,通過serviceloader類進行加載,加載后的類進行打印得到每一個實現類。

源碼具體分析,在接下來的學習中將持續更新。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/71149.html

相關文章

  • Centos7環境下源碼部署ThingsBoard

    摘要:本文為有二次開發需求的同學準備,可以修改源碼后編譯運行。具體操作即可在端口啟動前端服務。 本文為有thingsboard二次開發需求的同學準備,可以修改源碼后編譯運行。 準備工作 一臺4Gb內存以上的服務器(官方推薦8Gb以上,但實測以下配置即可正常運行) showImg(https://segmentfault.com/img/bVbu3eN?w=328&h=86); Centos7...

    Kahn 評論0 收藏0
  • Centos7環境下源碼部署ThingsBoard

    摘要:本文為有二次開發需求的同學準備,可以修改源碼后編譯運行。具體操作即可在端口啟動前端服務。 本文為有thingsboard二次開發需求的同學準備,可以修改源碼后編譯運行。 準備工作 一臺4Gb內存以上的服務器(官方推薦8Gb以上,但實測以下配置即可正常運行) showImg(https://segmentfault.com/img/bVbu3eN?w=328&h=86); Centos7...

    justCoding 評論0 收藏0
  • JIRA連接PostgreSQL數據庫的詳細步驟

    摘要:本文主要介紹如何連接到數據庫。創建并配置數據庫創建與連接的數據庫用戶登錄角色例如。或通過命令行確保該用戶擁有連接數據庫以及創建和編輯表的權限。測試連接并保存。注意元素必須指定數據庫類型。文件示例啟動現在連接到數據庫就配置好了。 本文主要介紹如何連接JIRA到PostgreSQL數據庫。 首先 檢查是否支持你的PostgreSQL版本。請參見支持的平臺。 如果是轉移JIRA到另一臺服務...

    ziwenxie 評論0 收藏0

發表評論

0條評論

SKYZACK

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<