我有通用的jdbc代碼,適用於各種數據庫。 我有一些apis可以處理事務和保存點。Jdbc檢查功能 - 保存點發布
的問題是,一些數據庫需要你釋放保存點手動
conn.releaseSavepoint(savepoint1)
有的只是拋出一個exeption當你做一個手動釋放(最顯着的Oracle)。
如何在運行時檢查數據庫是否具有自動保存點發布或者是否需要手動執行 。請問,我有一些不錯的apis。我不想抓住這個例外,這很醜陋 並且在這種情況下容易出錯。拋出的異常是java.sql.SqlException,不像「FeatureUnsupportedException」。所以,如果有一個真正的錯誤,我愚蠢地捕捉到它,那麼我可能會在整個交易中完全失敗。
感謝
你已經說過你不想聽到這個,但我認爲捕捉異常是你最好的選擇 – ControlAltDel
Javadoc說如果不支持,它會拋出SQLFeatureNotSupportedException。現在,如果實現符合API,那是另一回事。 – Luciano
@Luciano你是對的! Oracle決定在SqlException中包裝所有的db異常。但如果我抓住它,請檢查「原因」字段。如果它的SQLFeatureNotSupportedException工作,否則將它扔回去!謝謝,你迄今爲止給了我最好的想法。 –