簡體   English   中英

如何確定JDBC驅動程序是否為Type 4?

[英]How can I determine whether a JDBC driver is Type 4?

我們有一個在Java 1.6上運行的應用程序,它能夠通過自定義插件與RDBMS系統通信。 我們不關心客戶的數據庫類型,但出於各種原因,我們確實決定要求使用Type 4驅動程序。

我想以編程方式確定驅動程序是否為Type 4,以便我可以立即拒絕它,而不是花時間調試問題以后才發現驅動程序不是Type 4.因為我不知道供應商是什么,我不能只看版本號。 我看過Driver.jdbcCompliant(),但這不是驅動程序是Type 4的必要條件。我還看了創建一個Connection然后對它進行反射,看看它是否實現了某些方法,如isValid() ,但我再次意識到這並不一定能保證驅動程序是Type 4.有什么建議嗎?

編輯:似乎我正在談論不同的東西!

通過Connection.getMetaData()獲取DatabaseMetaData並檢查getJDBCMajorVersion() > = 4.您可能希望在調用該方法時捕獲NoSuchMethodException ,因為只有JDBC 3.0+驅動程序才會擁有它。

編輯:嗯,這似乎應該是正確的但是...... Oracle似乎沒有正確實現它,因為我獲得了11.2的JDBC版本。 這與驅動程序版本相同。 謝謝甲骨文!

如果您不能指望專門為此設計的方法,在我看來,您唯一的選擇是在Connection上調用createClob()等方法並捕獲NoSuchMethodException 那或為特定供應商添加特殊處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM