2010-01-15 90 views
2

我使用Connector/J 5.1.10作爲我的數據庫應用程序(使用MySQL)的JDBC驅動程序。MySQL JDBC驅動程序是否符合JDBC規範?

我發現雖然Statement返回的默認ResultSet是TYPE_FORWARD_ONLY類型,但我仍然可以安全地調用ResultSet上的previous()方法。

我還查看了源代碼(com.mysql.jdbc.ResultSetImpl),發現它也不檢查ResultSet的類型。

Connector/J是否完全不符合JDBC規範?

謝謝。

回答

1

API文檔說ResultSet#previous()應該拋出一個SQLException「如果...結果集類型是TYPE_FORWARD_ONLY」,所以我猜這是假設J/Connector違反了這裏的規範是安全的。

1

根據release notes該驅動程序符合Sun公開提供的所有測試。

該規範的某些部分是模糊的,mysql在發佈說明中特別說明了這一點。也許規範並沒有說明如果你在forward_only遊標上回溯時供應商應該做什麼......供應商可以選擇是否拋出異常。

公開測試不能測試規範中由供應商自行決定的部分。

+0

但規範明確提到,如果我們試圖在只能向前滾動的結果集上調用previous(),應該發生什麼; javadoc說應該拋出SQLException。 – 2010-01-15 10:53:32

相關問題