MySQL JDBC驱动程序是否符合JDBC规范?

时间:2010-01-15 09:47:12

标签: java mysql jdbc java-ee

我使用Connector / J 5.1.10作为我的数据库应用程序(使用MySQL)的JDBC驱动程序。

我发现尽管Statement返回的默认ResultSet的类型为TYPE_FORWARD_ONLY,但我仍然能够安全地调用ResultSet上的previous()方法。

我还查看了源代码( com.mysql.jdbc.ResultSetImpl ),发现它也没有对ResultSet的类型进行任何检查。

Connector / J是否完全符合JDBC规范?

感谢。

2 个答案:

答案 0 :(得分:1)

根据release notes,驱动程序符合Sun公开提供的所有测试。

规范的某些部分是模糊的,mysql在发行说明中明确说明了这一点。也许规范没有说明如果你遍历一个forward_only游标,供应商应该做什么......供应商可以选择是否向您抛出异常。

公开测试不能测试规范中由供应商自行决定的部分。

答案 1 :(得分:1)

API文档说ResultSet#previous()应该抛出一个SQLException“如果...结果集类型是TYPE_FORWARD_ONLY”,所以我想可以安全地假设J / Connector违反了规范。