Драйвер JDBC MySQL совместим со спецификацией JDBC? - PullRequest
2 голосов
/ 15 января 2010

Я использую Connector / J 5.1.10 в качестве драйвера JDBC для моего приложения базы данных (которое использует MySQL).

Я обнаружил, что хотя ResultSet по умолчанию, возвращаемый оператором, имеет тип TYPE_FORWARD_ONLY, я все еще могу безопасно вызывать метод previous () в ResultSet.

Я также посмотрел исходный код ( com.mysql.jdbc.ResultSetImpl ) и обнаружил, что он также не выполняет никаких проверок для типа ResultSet.

Является ли Connector / J не полностью совместимым со спецификацией JDBC?

Спасибо.

Ответы [ 2 ]

1 голос
/ 15 января 2010

Документация API гласит, что ResultSet # previous () должен выдавать SQLException "если ... тип набора результатов - TYPE_FORWARD_ONLY", поэтому я предполагаю, что можно предположить, что J / Connector нарушает спецификацию здесь.

1 голос
/ 15 января 2010

В соответствии с примечаниями к выпуску драйвер соответствует всем тестам, которые Sun делает общедоступными.

Некоторые части спецификации являются расплывчатыми, об этом, в частности, говорится в примечаниях к выпуску mysql. Возможно, в спецификации не сказано, что должен делать вендор, если вы вернетесь назад на курсор forward_only ... у вендора есть выбор: бросить вам исключение или нет.

Публичные тесты не могут тестировать те части спецификации, где решение оставлено на усмотрение поставщика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...