|
Spec-Zone .ru
спецификации, руководства, описания, API
|
У этого раздела есть информация для пользователей, которые обновляют от одной версии Connector/J другому, или к новой версии сервера MySQL, который поддерживает более свежий уровень JDBC. Более новая версия Connector/J могла бы включать изменения, чтобы поддерживать новые функции, улучшить существующую функциональность, или выполнить новые стандарты.
В Connector/J 5.0.x и ранее, псевдоним для таблицы в a SELECT оператор возвращается, получая доступ к использованию
метаданных набора результатов ResultSetMetaData.getColumnName(). Это
поведение однако не JDBC совместимый, и в Connector/J были изменены 5.1 этих поведений так, чтобы
исходное имя таблицы, а не псевдоним, было возвращено.
JDBC-совместимое поведение разрабатывается, чтобы позволить пользователям API восстанавливать
оператор DML, основанный на метаданных в пределах ResultSet и ResultSetMetaData.
Можно получить псевдоним для столбца в наборе результатов, вызывая ResultSetMetaData.getColumnLabel().
Использовать старое несовместимое поведение с ResultSetMetaData.getColumnName(),
используйте useOldAliasMetadataBehavior опция и набор значение к
true.
В Connector/J 5.0.x, значение по умолчанию useOldAliasMetadataBehavior был true, но
в Connector/J 5.1 это было изменено на значение по умолчанию false.
Используя Кодировку символов UTF-8 - До
версии 4.1 сервера MySQL, кодировка символов UTF-8 не поддерживалась сервером, однако драйвер JDBC
мог использовать это, позволяя хранению войти многократных наборов символов latin1
таблицы на сервере.
Запускаясь с MySQL 4.1, эта функциональность осуждается. Если у Вас есть приложения, которые полагаются на эту функциональность, и не могут обновить их, чтобы использовать официальную поддержку символа Unicode в версии 4.1 сервера MySQL или более новый, добавить следующее свойство к Вашему соединению URL:
useOldUTF8Behavior=true
Сторона сервера Готовые Операторы - Connector/J 3.1 будет автоматически обнаруживать и использовать сторону сервера подготовленные операторы, когда они будут доступными (версия 4.1.0 сервера MySQL и более новы). Если Ваше приложение встречается с проблемами со стороной сервера подготовленные операторы, можно вернуться к более старой стороне клиента эмулированный подготовленный код оператора, который все еще теперь используется для серверов MySQL, более старых чем 4.1.0 со следующим свойством соединения:
useServerPrepStmts=false
Connector/J 3.1 разрабатывается, чтобы быть обратно совместимым с Connector/J 3.0 в максимально возможной
степени. Существенные изменения изолируются к новой функциональности, представленной в MySQL 4.1 и более
новые, который включает наборы символов Unicode, сторона сервера подготовленные операторы, SQLState коды, возвращенные в сообщениях об ошибках сервером и различными
улучшениями производительности, которые могут быть включены или отключили свойства конфигурации
использования.
Наборы символов Unicode: См.
следующий раздел, так же как Раздел 10.1, "Поддержка
Набора символов", для информации об этой функции MySQL. Если Вам неправильно
сконфигурируют что-то, то это будет обычно обнаруживаться как ошибка с сообщением, подобным Illegal mix of collations.
Сторона сервера Готовые Операторы: Connector/J 3.1 будет автоматически обнаруживать и использовать сторону сервера подготовленные операторы, когда они будут доступными (версия 4.1.0 сервера MySQL и более новы).
Запускаясь с версии 3.1.7, драйвер сканирует SQL, из которого Вы готовите использование всех
разновидностей Connection.prepareStatement() чтобы определить - ли
это поддерживаемый тип оператора, чтобы подготовиться на стороне сервера, и если это не
поддерживается сервером, это вместо этого готовит это как сторону клиента эмулированный
подготовленный оператор. Можно отключить эту опцию, передавая emulateUnsupportedPstmts=false
в Вашем URL JDBC.
Если Ваше приложение встречается с проблемами со стороной сервера подготовленные операторы,
можно вернуться к более старой стороне клиента эмулированный подготовленный код оператора,
который все еще теперь используется для серверов MySQL, более старых чем 4.1.0 со свойством
соединения useServerPrepStmts=false.
Datetimes со все-нулевыми
компонентами (0000-00-00 ...): Эти значения не могут быть представлены
достоверно в Java. Connector/J 3.0.x всегда преобразовывал их в NULL
будучи считанным из ResultSet.
Connector/J 3.1 выдает исключение по умолчанию, когда с этими значениями встречаются, поскольку
это - самое корректное поведение согласно стандартам SQL и JDBC. Это поведение может быть
изменено, используя zeroDateTimeBehavior свойство конфигурации.
Допустимые значения:
exception (значение по умолчанию),
который бросает SQLException с SQLState S1009.
convertToNull, который возвращается
NULL вместо даты.
round, который округляет дату к самому
близкому самому близкому значению, которое является 0001-01-01.
Запуск с Connector/J 3.1.7, ResultSet.getString() может быть
разъединен от этого использования поведения noDatetimeStringSync=true (значение по умолчанию false) так, чтобы можно было получить неизменное все-нулевое
значение как Строку. Отметьте, что это также устраняет использовать любые преобразования
часового пояса, поэтому драйвер не будет позволять Вам включать noDatetimeStringSync
и useTimezone одновременно.
Новые Коды SQLState: Connector/J 3.1
использования SQL:1999 SQLState коды, возвращенные сервером MySQL (если поддерживающийся), которые
отличаются от наследства коды состояния X/Open это Connector/J 3.0 использования. Если соединено с
сервером MySQL, более старым чем MySQL 4.1.0 (самая старая версия, чтобы возвратить SQLStates как
часть кода ошибки), драйвер будет использовать встроенное отображение. Можно вернуться к старому
отображению при использовании свойства конфигурации useSqlStateCodes=false.
ResultSet.getString(): Вызов ResultSet.getString()
на a BLOB столбец теперь возвратит адрес byte[] массив, который представляет это вместо a String представление BLOB. BLOB у значений нет никакого набора символов, таким образом, они
не могут быть преобразованы в java.lang.Strings без потери данных или
повреждения.
Чтобы сохранить строки в MySQL с поведением LOB, используйте один из TEXT типы, которые драйвер обработает как a java.sql.Clob.
Отладка создает: Запуск с Connector/J
3.1.8 отладочная сборка драйвера в файле называют mysql-connector-java- поставляется рядом с
нормальным двоичным файлом фляги, который называют version-bin-g.jarmysql-connector-java-. version-bin.jar
Запускаясь с Connector/J 3.1.9, мы не поставляем .class несвязанные
файлы, они только доступны в архивах JAR, которые поставляют с драйвером.
Не используйте отладочную сборку драйвера если не проинструктировано, чтобы сделать так, сообщая
о проблеме или ошибке, поскольку это не разрабатывается, чтобы быть выполненным в продуктивных
средах, и окажет неблагоприятное влияние производительности когда использующийся. Двоичный файл
отладки также зависит от библиотеки времени выполнения Aspect/J, которая располагается в src/lib/aspectjrt.jar файл, который идет с распределением
Connector/J.