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.String
s без потери данных или
повреждения.
Чтобы сохранить строки в 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.