Spec-Zone .ru
спецификации, руководства, описания, API
|
Имя class, который реализует java.sql.Driver
в MySQL, Connector/J, com.mysql.jdbc.Driver
. org.gjt.mm.mysql.Driver
Имя class
также применимо для обратной совместимости с MM.MySQL, предшественником Connector/J. Используйте это имя class,
регистрируя драйвер, или иначе конфигурируя программное обеспечение, чтобы использовать MySQL, Connector/J.
Формат URL JDBC для MySQL, Connector/J, следующим образом, с элементами в квадратных скобках ([]), будучи дополнительным:
jdbc:mysql://[host
][,failoverhost
...][:port
]/[database
] »[?propertyName1
][=propertyValue1
][&propertyName2
][=propertyValue2
]...
Если имя хоста не определяется, оно принимает значение по умолчанию к 127.0.0.1
.
Если порт не определяется, он принимает значение по умолчанию к 3306
, номер порта
значения по умолчанию для серверов MySQL.
jdbc:mysql://[host
:port
],[host
:port
].../[database
] »[?propertyName1
][=propertyValue1
][&propertyName2
][=propertyValue2
]...
Вот является демонстрационное соединение URL:
jdbc:mysql://localhost:3306/sakila?profileSQL=true
Для соединений IPv6 используйте этот альтернативный синтаксис, чтобы определить узлы в URL, address=(
. Поддерживаемые ключи:key
=value
)
(protocol=tcp)
, или (protocol=pipe)
для именованных каналов на Windows.
(path=
для именованных каналов. path_to_pipe
)
(host=
для соединений TCP. hostname
)
(port=
для соединений TCP.port_number
)
Например:
jdbc:mysql://address=(protocol=tcp)(host=localhost)(port=3306)(user=test)/db
Любые другие параметры обрабатываются как специфичные для узла свойства, которые следуют за соглашениями свойств URL JDBC. Это теперь позволяет переопределения на узел любого свойства конфигурации для соединений мультиузла (то есть, при использовании failover, выравнивания нагрузки, или репликации). Ограничьте переопределения пользователем, паролем, сетевыми тайм-аутами и оператором и размерами кэша метаданных; результаты других переопределений на узел не определяются.
Если база данных не определяется, соединение делается без базы данных значения по умолчанию. В этом случае,
любой вызов setCatalog()
метод на экземпляре Соединения, или полностью определяют
имена таблиц, используя имя базы данных (то есть, SELECT
) в Вашем SQL. Открытие соединения, не определяя базу данных, чтобы использовать
обычно только полезно, когда инструменты разработки, которые работают с многократными базами данных, такими как
менеджеры базы данных GUI.dbname
.tablename
.colname
FROM
dbname.tablename...
Всегда используйте Connection.setCatalog()
метод, чтобы определить
требуемую базу данных в приложениях JDBC, а не USE
оператор.database
У MySQL, Connector/J, есть поддержка кластерных систем. Это позволяет драйверу перестать работать к любому числу
ведомых узлов и все еще выполнить запросы только для чтения. Failover только происходит, когда соединение
находится в autoCommit(true)
состояние, потому что failover не может произойти
достоверно, когда транзакция
происходит. Устанавливаются большинство серверов приложений и пулов соединения autoCommit
к true
в конце каждого использования
транзакции/соединения.
У failover функциональности есть следующее поведение:
Если свойство URL autoReconnect
false
:
Failover только происходит в инициализации соединения, и возврат к состоянию до сбоя происходит, когда
драйвер решает, что первый узел стал доступным снова.
Если свойство URL autoReconnect
true
:
Failover происходит, когда драйвер решает, что связь прервалась (проверенный перед каждым запросом), и отступает к первому узлу, когда это решает,
что узел стал доступным снова (после того, как queriesBeforeRetryMaster
запросы были выпущены).
В любом случае, всякий раз, когда Вы соединяетесь с "отказавший - по" серверу, соединение устанавливается в состояние только для чтения, таким образом, запросы, которые пытаются изменить данные, выдадут исключения (запрос никогда не будет обрабатываться сервером MySQL).
Свойства конфигурации определяют, как Connector/J сделает соединение с сервером MySQL. Если не указано иное,
свойства могут быть установлены для a DataSource
возразите или для a Connection
объект.
Свойства конфигурации могут быть установлены одним из следующих способов:
Используя set*()
методы на реализациях MySQL java.sql.DataSource
(который является привилегированным методом при
использовании реализаций java.sql.DataSource
):
com.mysql.jdbc.jdbc2.optional.MysqlDataSource
com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
Как пара ключ/значение в java.util.Properties
экземпляр, к которому передают DriverManager.getConnection()
или Driver.connect()
Как параметр URL JDBC в URL, данном java.sql.DriverManager.getConnection()
,
java.sql.Driver.connect()
или реализации MySQL javax.sql.DataSource
setURL()
метод.
Если механизм, который Вы используете, чтобы сконфигурировать URL JDBC, основан на XML, используйте литерал символа XML & разделить параметры конфигурации, поскольку амперсанд является зарезервированным символом для XML.
Свойства перечисляются в следующих таблицах.
Соединение/Аутентификация.
Имя свойства | Определение | Значение по умолчанию | Начиная с Версии |
пользователь | Пользователь, чтобы соединиться как | все версии | |
пароль | Пароль, чтобы использовать, соединяясь | все версии | |
socketFactory | Имя class, который драйвер должен использовать для того, чтобы создать сокетные соединения с сервером. Этот class должен реализовать интерфейс 'com.mysql.jdbc. У SocketFactory' и нет общественности никакой-args конструктор. | com.mysql.jdbc. StandardSocketFactory | 3.0.3 |
connectTimeout | Тайм-аут для сокета соединяется (в миллисекундах), с 0 не являющийся никаким тайм-аутом. Только работы над JDK 1.4 или более новый. Значения по умолчанию к '0'. | 0 | 3.0.1 |
socketTimeout | Тайм-аут на сетевых операциях сокета (0, значение по умолчанию не означает тайм-аута). | 0 | 3.0.1 |
connectionLifecycleInterceptors | Разграниченный запятой список классов, которые реализуют "com.mysql.jdbc.ConnectionLifecycleInterceptor", который должен уведомленный относительно событий жизненного цикла соединения (создание, разрушение, фиксация, откат, setCatalog и setAutoCommit) и потенциально изменять выполнение этих команд. ConnectionLifecycleInterceptors являются "наращиваемыми", больше чем один перехватчик может быть определен через свойство конфигурации как разграниченный запятой список с перехватчиками, выполняемыми в порядке слева направо. | 5.1.4 | |
useConfigs | Загрузите разграниченный запятой список свойств конфигурации прежде, чем проанализировать URL или применить определенные пользователем свойства. Эти конфигурации объясняются в 'Конфигурациях' документации. | 3.1.5 | |
authenticationPlugins | Разграниченный запятой список классов та реализация com.mysql.jdbc. AuthenticationPlugin и который будет использоваться для аутентификации если не отключено "disabledAuthenticationPlugins" свойством. | 5.1.19 | |
defaultAuthenticationPlugin | Имя class, реализовывая com.mysql.jdbc. AuthenticationPlugin, который будет использоваться в качестве плагина аутентификации значения по умолчанию (см. ниже). Это - ошибка использовать class, который не перечисляется в "authenticationPlugins", ни это - один из встроенных плагинов. Это - ошибка установить, как принимают значение по умолчанию плагин, который был отключен с "disabledAuthenticationPlugins" свойством. Это - ошибка установить в NULL это значение или пустую строку (то есть должно быть, по крайней мере, допустимый плагин аутентификации значения по умолчанию, определенный для соединения, встречая все упомянутые выше ограничения). | com.mysql.jdbc.authentication.MysqlNativePasswordPlugin | 5.1.19 |
disabledAuthenticationPlugins | Разграниченный запятой список классов, реализовывая com.mysql.jdbc. AuthenticationPlugin или механизмы, то есть "mysql_native_password". Плагины аутентификации или перечисленные механизмы не будут использоваться для аутентификации, которая перестанет работать, если она потребует одного из них. Это - ошибка отключить плагин аутентификации значения по умолчанию (или тот, названный "defaultAuthenticationPlugin" свойством или трудно кодированный, если "defaultAuthenticationPlugin" свойство не устанавливается). | 5.1.19 | |
disconnectOnExpiredPasswords | Если "disconnectOnExpiredPasswords" устанавливается в "ложь", и пароль истекается тогда, сервер вводит режим "песочницы" и передается, ДОПУСКАЮТ ОШИБКУ (08001, ER_MUST_CHANGE_PASSWORD) для всех команд, которые не необходимы, чтобы установить новый пароль, пока новый пароль не устанавливается. | истина | 5.1.23 |
interactiveClient | Установите флаг CLIENT_INTERACTIVE, который говорит MySQL соединениям тайм-аута, основанным на INTERACTIVE_TIMEOUT вместо WAIT_TIMEOUT | ложь | 3.1.0 |
localSocketAddress | Имя узла или IP-адрес, данный, чтобы явно сконфигурировать интерфейс, с которым драйвер свяжет сторону клиента соединения TCP/IP, соединяясь. | 5.0.5 | |
propertiesTransform | Реализация com.mysql.jdbc.ConnectionPropertiesTransform, который драйвер будет использовать, чтобы изменить свойства URL, которые передают к драйверу прежде, чем делать попытку соединения | 3.1.4 | |
useCompression | Используйте zlib сжатие, связываясь с сервером (истина/ложь)? Значения по умолчанию ко 'лжи'. | ложь | 3.0.17 |
Сети.
Имя свойства | Определение | Значение по умолчанию | Начиная с Версии |
maxAllowedPacket | Максимальный позволенный пакетный размер, чтобы передаться к серверу. Если не набор, значение системной переменной 'max_allowed_packet' будет использоваться, чтобы инициализировать это после соединения. Это значение не будет вступать в силу если установлено больше чем значение 'max_allowed_packet'. | -1 | 5.1.8 |
tcpKeepAlive | Соединяя использование TCP/IP, должен набор драйверов SO_KEEPALIVE? | истина | 5.0.7 |
tcpNoDelay | Соединяя использование TCP/IP, должен набор драйверов SO_TCP_NODELAY (запрещающий Алгоритм Nagle)? | истина | 5.0.7 |
tcpRcvBuf | Соединяя использование TCP/IP, должен набор драйверов SO_RCV_BUF к данному значению? Значение по умолчанию '0', средства используют значение по умолчанию платформы для этого свойства), | 0 | 5.0.7 |
tcpSndBuf | Соединяя использование TCP/IP, должен набор драйверов SO_SND_BUF к данному значению? Значение по умолчанию '0', средства используют значение по умолчанию платформы для этого свойства), | 0 | 5.0.7 |
tcpTrafficClass | Соединяя использование TCP/IP, должен трафик набора драйверов поля типа службы или class? См. документацию forjava.net. Socket.setTrafficClass () для получения дополнительной информации. | 0 | 5.0.7 |
Высокая доступность и Кластеризация.
Имя свойства | Определение | Значение по умолчанию | Начиная с Версии |
autoReconnect | Драйвер должен попытаться восстановить устарелые и/или мертвые соединения? Если включено драйвер выдаст исключение для запросы, выпущенные на устарелом или мертвом соединении, которые принадлежат текущей транзакции, но попытаются, повторно соединяются перед следующим запросом, выпущенным на соединении в новой транзакции. Использование этой функции не рекомендуется, потому что этому связали побочные эффекты с состоянием сеанса и непротиворечивостью данных, когда приложения не обрабатывают SQLExceptions должным образом, и только разрабатываются, чтобы использоваться, когда Вы неспособны сконфигурировать свое приложение, чтобы обработать SQLExceptions, следующий из мертвых и устарелых соединений должным образом. Альтернативно, как последняя опция, исследуйте установку переменной сервера MySQL "wait_timeout" к высокому значению, а не значению по умолчанию 8 часов. | ложь | 1.1 |
autoReconnectForPools | Используйте стратегию пересоединения, подходящую для пулов соединения (значения по умолчанию ко 'лжи') | ложь | 3.1.3 |
failOverReadOnly | Перестав работать в autoReconnect режиме, соединение должно быть установлено в 'только для чтения'? | истина | 3.0.12 |
maxReconnects | Максимальное количество повторно соединяется с попыткой, если autoReconnect является истиной, значение по умолчанию '3'. | 3 | 1.1 |
reconnectAtTxEnd | Если autoReconnect устанавливается в истину, драйвер должен делать попытку пересоединений в конце каждой транзакции? | ложь | 3.0.10 |
retriesAllDown | При использовании выравнивания нагрузки число раз драйвер должен циклически повториться через доступные узлы, пытаясь соединиться. Между циклами драйвер приостановится для 250 мс, если никакие серверы не будут доступны. | 120 | 5.1.6 |
initialTimeout | Если autoReconnect включается, начальное время, чтобы ожидать между повторно соединяют попытки (в секундах, значениях по умолчанию к '2'). | 2 | 1.1 |
roundRobinLoadBalance | Когда autoReconnect включается, и failoverReadonly является ложью, мы должны выбрать узлы, чтобы соединиться с на круговой основе? | ложь | 3.1.2 |
queriesBeforeRetryMaster | Число запросов, чтобы выйти перед отступанием к ведущему устройству когда отказавший по (при использовании мультиузла failover). Какой бы ни условие соблюдают сначала, 'queriesBeforeRetryMaster', или 'secondsBeforeRetryMaster' заставит попытку быть сделанной повторно соединиться с ведущим устройством. Значения по умолчанию к 50. | 50 | 3.0.2 |
secondsBeforeRetryMaster | Сколько времени должен драйвер ожидать, когда отказавший, перед попыткой | 30 | 3.0.2 |
selfDestructOnPingMaxOperations | Набор =If к ненулевому значению, драйвер сообщит близко о соединении и сообщит об отказе, когда Connection.ping () или Connection.isValid (интервал) вызовут, если количество соединения команд, отправленных серверу, превышает это значение. | 0 | 5.1.6 |
selfDestructOnPingSecondsLifetime | Если установлено в ненулевое значение, драйвер сообщит близко о соединении и сообщит об отказе, когда Connection.ping () или Connection.isValid (интервал) вызовут, если время жизни соединения превышает это значение. | 0 | 5.1.6 |
resourceId | Глобально уникальное имя, которое идентифицирует ресурс, что этот источник данных или соединение соединяются с, используются для XAResource.isSameRM (), когда драйвер не может значение determinethis, основанное на именах узлов, используемых в URL | 5.0.1 |
Безопасность.
Имя свойства | Определение | Значение по умолчанию | Начиная с Версии |
allowMultiQueries | Позвольте использование';' разграничить многократные запросы во время одного оператора (истина/ложь), значения по умолчанию ко 'лжи', и не влияет на addBatch () и executeBatch () методы, которые вместо этого полагаются на rewriteBatchStatements. | ложь | 3.1.1 |
useSSL | Используйте SSL, связываясь с сервером (истина/ложь), значения по умолчанию ко 'лжи' | ложь | 3.0.2 |
requireSSL | Потребуйте соединения SSL если useSSL=true? (значения по умолчанию ко 'лжи'). | ложь | 3.1.0 |
verifyServerCertificate | Если "useSSL" устанавливается в "истину", драйвер должен проверить сертификат сервера? При использовании этой функции keystore параметры должны быть определены "clientCertificateKeyStore *" свойства, а не системные свойства. | истина | 5.1.6 |
clientCertificateKeyStoreUrl | URL к клиентскому сертификату KeyStore (если не определенный, используйте значения по умолчанию), | 5.1.0 | |
clientCertificateKeyStoreType | Тип KeyStore для клиентских сертификатов (НУЛЕВЫЕ или пустые средства используют значение по умолчанию, которое является "JKS". Стандарт keystore типы, поддерживаемые JVM, является "JKS" и "PKCS12", Ваша среда может иметь более доступный в зависимости от того, какие продукты безопасности устанавливаются и доступны JVM. | JKS | 5.1.0 |
clientCertificateKeyStorePassword | Пароль для клиентских сертификатов KeyStore | 5.1.0 | |
trustCertificateKeyStoreUrl | URL к доверяемому корневому сертификату KeyStore (если не определенный, используйте значения по умолчанию), | 5.1.0 | |
trustCertificateKeyStoreType | Тип KeyStore для доверяемых корневых сертификатов (НУЛЕВЫЕ или пустые средства используют значение по умолчанию, которое является "JKS". Стандарт keystore типы, поддерживаемые JVM, является "JKS" и "PKCS12", Ваша среда может иметь более доступный в зависимости от того, какие продукты безопасности устанавливаются и доступны JVM. | JKS | 5.1.0 |
trustCertificateKeyStorePassword | Пароль для доверяемых корневых сертификатов KeyStore | 5.1.0 | |
allowLoadLocalInfile | Если драйвер позволяет использование 'ДАННЫХ ЗАГРУЗКИ ЛОКАЛЬНЫЙ INFILE...' (значения по умолчанию к 'истине'). | истина | 3.0.3 |
allowUrlInLocalInfile | Драйвер должен позволить URL в операторах 'LOAD DATA LOCAL INFILE'? | ложь | 3.1.4 |
параноидальный | Примите меры, чтобы предотвратить уязвимую информацию воздействия в сообщениях об ошибках и очистить структуры данных, содержащие уязвимые данные когда возможный? (значения по умолчанию ко 'лжи') | ложь | 3.0.1 |
passwordCharacterEncoding | Какая кодировка символов используется для паролей? Оставляя этот набор значению по умолчанию (нуль), использует набор символов платформы, который работает на ISO8859_1 (то есть "latin1") пароли. Для паролей в других кодировках символов кодирование должно будет быть определено с этим свойством, как it'snot возможный для драйвера автоматически обнаружить это. | 5.1.7 |
Расширения производительности.
Имя свойства | Определение | Значение по умолчанию | Начиная с Версии |
callableStmtCacheSize | Если 'cacheCallableStmts' включается, сколько вызываемых операторов должно кэшироваться? | 100 | 3.1.2 |
metadataCacheSize | Число запросов, чтобы кэшировать ResultSetMetadata для того, если cacheResultSetMetaData устанавливается в 'истину' (значение по умолчанию 50) | 50 | 3.1.1 |
useLocalSessionState | Драйвер должен отнестись к внутренним значениям автоматической фиксации и изоляции транзакции, которые устанавливаются Connection.setAutoCommit () и Connection.setTransactionIsolation () и состояние транзакции, утвержденное протоколом, вместо того, чтобы запросить базу данных или вслепую отправить команды базе данных для фиксации () или откат () вызовы метода? | ложь | 3.1.7 |
useLocalTransactionState | Драйвер должен использовать состояние в транзакции, обеспеченное протоколом MySQL, чтобы определить, должна ли фиксация () или откат () фактически быть отправлена базе данных? | ложь | 5.1.7 |
prepStmtCacheSize | Если подготовленное кэширование оператора включается, сколько готовых операторов должно кэшироваться? | 25 | 3.0.10 |
prepStmtCacheSqlLimit | Если подготовленное кэширование оператора будет включено, что самый большой SQL является драйвером, то будет кэшировать парсинг для? | 256 | 3.0.10 |
parseInfoCacheFactory | Имя class, реализовывая com.mysql.jdbc. CacheAdapterFactory, который будет использоваться, чтобы создать кэши для проанализированного представления стороны клиента подготовленные операторы. | com.mysql.jdbc. PerConnectionLRUFactory | 5.1.1 |
serverConfigCacheFactory | Имя реализации class com.mysql.jdbc.CacheAdapterFactory<String, Карта <Строка, Строка>>, который будет использоваться, чтобы создать кэши для значений конфигурации сервера MySQL | com.mysql.jdbc.PerVmServerConfigCacheFactory | 5.1.1 |
alwaysSendSetIsolation | Драйвер должен всегда связываться с базой данных, когда Connection.setTransactionIsolation () вызывают? Если установлено в ложь, драйвер только свяжется с базой данных, когда требуемая изоляция транзакции будет отличаться чем, какой бы ни более ново, последнее значение, которое было установлено через Connection.setTransactionIsolation (), или значение, которое было считано из сервера, когда соединение было установлено. Отметьте, что useLocalSessionState=true вызовет то же самое поведение как alwaysSendSetIsolation=false, независимо от того, как alwaysSendSetIsolation устанавливается. | истина | 3.1.7 |
maintainTimeStats | Драйвер должен поддержать различные внутренние таймеры, чтобы включить вычислениям времени простоя так же как большему количеству многословных сообщений об ошибках, когда связь с сервером прерывается? Установка этого свойства ко лжи удаляет по крайней мере два звонка в System.getCurrentTimeMillis () на запрос. | истина | 3.1.9 |
useCursorFetch | Если соединено с MySQL> 5.0.2, и setFetchSize ()> 0 на операторе, тот оператор должен использовать основанную на курсоре выборку, чтобы получить строки? | ложь | 5.0.0 |
blobSendChunkSize | Блок, чтобы использовать, отправляя BLOB/CLOBs через ServerPreparedStatements | 1048576 | 3.1.9 |
cacheCallableStmts | Если драйвер кэширует этап парсинга CallableStatements | ложь | 3.1.2 |
cachePrepStmts | Действительно ли драйвер должен кэшировать этап парсинга PreparedStatements стороны клиента подготовленные операторы, "проверка" на пригодность стороны сервера подготовленная и сторона сервера подготовленные операторы непосредственно? | ложь | 3.0.10 |
cacheResultSetMetadata | Действительно ли драйвер должен кэшировать ResultSetMetaData для Операторов и PreparedStatements? (Req. JDK 1.4 +, истина/ложь, значение по умолчанию 'ложь') | ложь | 3.1.1 |
cacheServerConfiguration | Действительно ли драйвер должен кэшировать результаты 'ВЫСТАВОЧНЫХ ПЕРЕМЕННЫХ' и 'ВЫСТАВОЧНОГО СОПОСТАВЛЕНИЯ' на основе на URL? | ложь | 3.1.5 |
defaultFetchSize | Драйвер вызовет setFetchSize (n) с этим значением на всех недавно создаваемых Операторах | 0 | 3.1.9 |
dontTrackOpenResources | Спецификация JDBC требует, чтобы драйвер автоматически отследил и закрыл ресурсы, однако если Ваше приложение не делает хорошего задания явного вызова близко () на операторах или наборах результатов, это может вызвать утечку памяти. Установка этого свойства к истине ослабляет это ограничение, и может быть большим количеством памяти, эффективной для некоторых приложений. | ложь | 3.1.7 |
dynamicCalendars | Драйвер должен получить календарь значения по умолчанию когда требующийся, или кэшировать это / сеанс для каждого подключения? | ложь | 3.1.5 |
elideSetAutoCommits | Используя MySQL 4.1 или более новый, драйвер должен только выпустить 'набор autocommit=n' запросы, когда состояние сервера не соответствует требуемое состояние (булевым) Connection.setAutoCommit? | ложь | 3.1.3 |
enableQueryTimeouts | Когда включено, набор тайм-аутов запроса через Statement.setQueryTimeout () используют совместно используемый java.util. Экземпляр таймера для того, чтобы запланировать. Даже если тайм-аут не истекает прежде, чем запрос обрабатывается, будет память, используемая TimerTask для данного тайм-аута, который не будет исправлен до времени истек бы тайм-аут, если бы это не было отменено драйвером. Среды высокой загрузки могли бы хотеть рассмотреть отключение этой функциональности. | истина | 5.0.6 |
holdResultsOpenOverStatementClose | Драйвер должен закрыть наборы результатов на Statement.close () как требуется спецификацией JDBC? | ложь | 3.1.7 |
largeRowSizeThreshold | Какую строку набора результатов размера драйвер JDBC должен считать "большим", и таким образом использовать более эффективный памятью способ представить строку внутренне? | 2048 | 5.1.1 |
loadBalanceStrategy | Используя сбалансированное с загрузки соединение, чтобы соединить с узлами SQL в MySQL конфигурацию Cluster/NDB (при использовании URL снабжают префиксом "jdbc:mysql:loadbalance://"), какой алгоритм выравнивания нагрузки должен использование драйвера: (1) "случайный" - драйвер выберет случайный узел к каждому запросу. Это имеет тенденцию работать лучше чем круговой, поскольку случайность несколько учтет распространение загрузок, где запросы изменяются во время отклика, в то время как круговой может иногда приводить к перегруженным узлам, если есть изменения во время отклика через рабочую нагрузку. (2) "bestResponseTime" - драйвер направит запрос к узлу, у которого было лучшее время отклика для предыдущей транзакции. | случайный | 5.0.6 |
locatorFetchBufferSize | Если 'emulateLocators' конфигурируется к 'истине', какой буфер размера должен использоваться, выбирая данные BLOB для getBinaryInputStream? | 1048576 | 3.2.1 |
rewriteBatchedStatements | Драйвер должен использовать мультизапросы (независимо от установка "allowMultiQueries"), так же как перезапись готовых операторов для ВСТАВКИ в мультизначение вставляет, когда executeBatch () вызывают? Заметьте, что у этого есть потенциал для инжекции SQL, используя плоскость java.sql. Операторы и Ваш код не санируют ввод правильно. Заметьте, что для готовых операторов, сторона сервера подготовленные операторы не могут в настоящий момент использовать в своих интересах эту опцию перезаписи, и что, если Вы не определяете потоковые длины при использовании PreparedStatement.set*Stream (), драйвер не будет в состоянии определить оптимальное число параметров на пакет, и Вы могли бы получить ошибку от драйвера, что результирующий пакет является слишком большим. Statement.getGeneratedKeys () для этих переписанных операторов только работает, когда весь пакет включает операторы INSERT. | ложь | 3.1.13 |
useDirectRowUnpack | Используйте более новый код распаковки строки набора результатов, который пропускает копию от сетевых буферов до пакетного экземпляра MySQL и вместо этого читает непосредственно в буферы данных строки набора результатов. | истина | 5.1.1 |
useDynamicCharsetInfo | Драйвер должен использовать кэш для каждого подключения информации о наборе символов, запрошенной от сервера когда необходимо, или использовать встроенное статическое отображение, которое более эффективно, но не знает о пользовательских наборах символов или наборах символов, реализованных после выпуска драйвера JDBC? | истина | 5.0.6 |
useFastDateParsing | Используйте внутреннюю Строку-> подпрограммы преобразования Даты/Времени/Метки времени, чтобы избежать чрезмерного объектного создания? | истина | 5.0.5 |
useFastIntParsing | Используйте внутреннюю Строку-> Целочисленные подпрограммы преобразования, чтобы избежать чрезмерного объектного создания? | истина | 3.1.4 |
useJvmCharsetConverters | Всегда используйте подпрограммы кодировки символов, встроенные в JVM, вместо того, чтобы использовать таблицы поиска для однобайтовых наборов символов? | ложь | 5.0.1 |
useReadAheadInput | Используйте более новое, оптимизированное неблокирование, буферизованный входной поток когда readingfrom сервер? | истина | 3.1.5 |
Отладка/Профилирование.
Имя свойства | Определение | Значение по умолчанию | Начиная с Версии |
регистратор | Имя class, который реализует "com.mysql.jdbc.log.Log", который будет использоваться, чтобы зарегистрировать сообщения к. (значение по умолчанию "com.mysql.jdbc.log. StandardLogger", который регистрирует к STDERR), | com.mysql.jdbc.log. StandardLogger | 3.1.1 |
gatherPerfMetrics | Драйвер должен собрать метрики производительности, и сообщить о них через сконфигурированный регистратор каждый 'reportMetricsIntervalMillis' миллисекунды? | ложь | 3.1.2 |
profileSQL | Запросы трассировки и их времена выполнения/выборки к сконфигурированному регистратору (истина/ложь) значения по умолчанию ко 'лжи' | ложь | 3.1.0 |
profileSql | Осуждаемый, используйте 'profileSQL' вместо этого. Запросы трассировки и их времена выполнения/выборки на STDERR (истина/ложь) значения по умолчанию ко 'лжи' | 2.0.14 | |
reportMetricsIntervalMillis | Если 'gatherPerfMetrics' включается, как часто они должны быть зарегистрированы (в мс)? | 30000 | 3.1.2 |
maxQuerySizeToLog | Управляет максимальной длиной/размером запроса, который будет зарегистрирован, профилируя или прослеживая | 2048 | 3.1.3 |
packetDebugBufferSize | Максимальное количество пакетов, чтобы сохранить, когда 'enablePacketDebug' является истиной | 20 | 3.1.3 |
slowQueryThresholdMillis | Если 'logSlowQueries' включается, сколько времени должен запрос (в мс) прежде, чем это будет зарегистрировано как 'медленное'? | 2000 | 3.1.2 |
slowQueryThresholdNanos | Если 'useNanosForElapsedTime' будет установлен в истину, и это свойство устанавливается в ненулевое значение, то драйвер будет использовать этот порог (в модулях наносекунды), чтобы определить, был ли запрос медленным. | 0 | 5.0.7 |
useUsageAdvisor | Драйвер должен выпустить предупреждения 'использования', советуя надлежащему и эффективному использованию JDBC и MySQL, Connector/J к журналу (истина/ложь, значения по умолчанию ко 'лжи')? | ложь | 3.1.1 |
autoGenerateTestcaseScript | Драйвер должен вывести SQL, который он выполняет, включая сторону сервера подготовленные операторы к STDERR? | ложь | 3.1.9 |
autoSlowLog | Вместо того, чтобы использовать slowQueryThreshold*, чтобы определить, является ли запрос достаточно медленным, чтобы быть зарегистрированным, поддержите статистические данные, которые позволяют драйверу определять запросы, которые являются вне 99-ой процентили? | истина | 5.1.4 |
clientInfoProvider | Имя class, который реализует com.mysql.jdbc. JDBC4ClientInfoProvider взаимодействуют через интерфейс, чтобы поддерживать Connection.get/setClientInfo JDBC-4.0 () методы | com.mysql.jdbc.JDBC4CommentClientInfoProvider | 5.1.0 |
dumpMetadataOnColumnNotFound | Драйвер должен вывести метаданные на уровне поля набора результатов в сообщение об исключительной ситуации, когда ResultSet.findColumn () перестал работать? | ложь | 3.1.13 |
dumpQueriesOnException | Драйвер должен вывести содержание запроса, отправленного серверу в сообщении для SQLExceptions? | ложь | 3.1.3 |
enablePacketDebug | Когда включено, кольцевой буфер 'packetDebugBufferSize' пакетов будет сохранен, и выведен, когда исключения будут выданы в ключевых областях в коде драйвера | ложь | 3.1.3 |
explainSlowQueries | Если 'logSlowQueries' включается, драйвер должен автоматически выпустить 'ОБЪЯСНЕНИЕ' на сервере и отправить результаты сконфигурированному журналу на ПРЕДУПРЕДИТЬ уровне? | ложь | 3.1.2 |
includeInnodbStatusInDeadlockExceptions | Включайте вывод "ВЫСТАВОЧНОГО МЕХАНИЗМА СОСТОЯНИЕ INNODB" в сообщениях об исключительной ситуации, когда исключения мертвой блокировки обнаруживаются? | ложь | 5.0.7 |
includeThreadDumpInDeadlockExceptions | Включайте текущий дамп потока Java в сообщения об исключительной ситуации, когда исключения мертвой блокировки обнаруживаются? | ложь | 5.1.15 |
includeThreadNamesAsStatementComment | Включайте имя текущего потока как комментарий, видимый на "ШОУ PROCESSLIST", или в дампах мертвой блокировки Innodb, полезных в корреляции с "includeInnodbStatusInDeadlockExceptions=true" и "includeThreadDumpInDeadlockExceptions=true". | ложь | 5.1.15 |
logSlowQueries | Должны запросы, которые занимают больше времени чем 'slowQueryThresholdMillis' быть зарегистрированными? | ложь | 3.1.2 |
logXaCommands | Драйвер должен зарегистрировать команды XA, отправленные MysqlXaConnection серверу на уровне ОТЛАДКИ журналирования? | ложь | 5.0.5 |
profilerEventHandler | Имя class, который реализует интерфейс com.mysql.jdbc.profiler.ProfilerEventHandler, который будет использоваться, чтобы обработать события профилирования/трассировки. | com.mysql.jdbc.profiler.LoggingProfilerEventHandler | 5.1.6 |
resultSetSizeThreshold | Если советнику по вопросам использования включают, сколько строк набор результатов должен содержать прежде, чем драйвер предупреждает, что это является подозрительно большим? | 100 | 5.0.5 |
traceProtocol | Сетевой протокол на уровне трассировки должен быть зарегистрирован? | ложь | 3.1.2 |
useNanosForElapsedTime | Для того, чтобы профилировать/отладить функциональность, которая измеряет прошедшее время, драйвер должен попытаться использовать разрешение наносекунд ifavailable (JDK> = 1.5)? | ложь | 5.0.7 |
Разное.
Имя свойства | Определение | Значение по умолчанию | Начиная с Версии |
useUnicode | Драйвер должен использовать кодировки символов Unicode, обрабатывая строки? Должен только использоваться, когда драйвер не может определить отображение наборов символов, или Вы пытаетесь 'вынудить' драйвер использовать набор символов, который MySQL любой исходно не поддерживает (такие как UTF-8), истина/ложь, значения по умолчанию к 'истине' | истина | 1.1 г |
characterEncoding | Если 'useUnicode' устанавливается в истину, какую кодировку символов драйвер должен использовать, имея дело со строками? (значения по умолчанию должны 'автоматически обнаружить'), | 1.1 г | |
characterSetResults | Набор символов, чтобы сказать серверу возвращать результаты как. | 3.0.13 | |
connectionAttributes | Разграниченный запятой список определяемых пользователем key:value пар (в дополнение к стандарту определенные с помощью MySQL key:value пары), чтобы быть переданным к MySQL Server для дисплея как соединение приписывает в таблице PERFORMANCE_SCHEMA.SESSION_CONNECT_ATTRS. Использование в качестве примера: connectionAttributes=key1:value1,key2:value2 Эта функциональность доступна для использования с версией 5.6 MySQL Server или позже только. Более ранние версии MySQL Server не поддерживают атрибуты соединения, вызывая этот параметр конфигурации будет проигнорирован. Установка connectionAttributes=none заставит обработку атрибута соединения обойтись для ситуаций, где скорость создания/инициализации Соединения является критической. | 5.1.25 | |
connectionCollation | Если установлено, говорит серверу использовать это сопоставление через 'набор collation_connection' | 3.0.13 | |
useBlobToStoreUTF8OutsideBMP | Говорит драйверу обрабатывать [СРЕДНИЕ/ДЛИННЫЕ] столбцы BLOB как [ДЛИННЫЕ] столбцы VARCHAR, содержащие текст, закодированный в UTF-8, у которого есть символы вне BMP (4-байтовые кодировки), который сервер MySQL не может обработать исходно. | ложь | 5.1.3 |
utf8OutsideBmpExcludedColumnNamePattern | Когда "useBlobToStoreUTF8OutsideBMP" будет установлен в "истину", имена столбцов, соответствующие данный regex, будут все еще обработаны как BLOB, если они не соответствуют regex, определенный для "utf8OutsideBmpIncludedColumnNamePattern". regex должен следовать за образцами, используемыми для java.util.regex пакета. | 5.1.3 | |
utf8OutsideBmpIncludedColumnNamePattern | Используемый, чтобы определить исключение управляет к "utf8OutsideBmpExcludedColumnNamePattern". regex должен следовать за образцами, используемыми для java.util.regex пакета. | 5.1.3 | |
loadBalanceEnableJMX | Включает JMX-на-основе управлению сбалансированными с загрузки группами соединения, включая живое дополнение/удаление узлов от пула выравнивания нагрузки. | ложь | 5.1.13 |
sessionVariables | Список разделенных запятой значений пар имя/значение, которые будут отправлены как СЕАНС НАБОРА... к серверу, когда драйвер соединяется. | 3.1.8 | |
useColumnNamesInFindColumn | До JDBC-4.0 спецификации JDBC связали ошибку с тем, что могло быть дано как "имя столбца" к методам ResultSet как findColumn (), или методы get, которые взяли свойство String. JDBC-4.0 разъясненное "имя столбца", чтобы означать метку, как дано в пункте "AS" и возвратился ResultSetMetaData.getColumnLabel (), и если никакой пункт AS, имя столбца. Установка этого свойства к "истине" даст поведение, которое является конгруэнтным JDBC-3.0 и более ранним версиям спецификации JDBC, но которое из-за ошибки спецификации могло дать неожиданные результаты. Это свойство предпочитается по "useOldAliasMetadataBehavior", если Вы не нуждаетесь в определенном поведении, которое это обеспечивает относительно ResultSetMetadata. | ложь | 5.1.7 |
allowNanAndInf | Драйвер должен позволить НЭН или +/-INF значения в PreparedStatement.setDouble ()? | ложь | 3.1.5 |
autoClosePStmtStreams | Драйвер должен автоматически вызвать.close () на потоках/читателях, которые передают как параметры через набор * () методы? | ложь | 3.1.12 |
автодесериализовать | Драйвер должен автоматически обнаружить и десериализовать объекты, хранившие в полях BLOB? | ложь | 3.1.5 |
blobsAreStrings | Драйвер должен всегда обрабатывать BLOB как Строки - определенно, чтобы работать вокруг сомнительных метаданных, возвращенных сервером для пунктов GROUP BY? | ложь | 5.0.8 |
capitalizeTypeNames | Используйте для своей выгоды имена типов в DatabaseMetaData? (обычно только полезный при использовании WebObjects, истины/лжи, значений по умолчанию ко 'лжи') | истина | 2.0.7 |
clobCharacterEncoding | Кодировка символов, чтобы использовать для отправки и получения ТЕКСТА, MEDIUMTEXT и LONGTEXT оценивает вместо сконфигурированного соединения characterEncoding | 5.0.0 | |
clobberStreamingResults | Это заставит 'потоковую передачу' ResultSet быть автоматически закрытой, и любые выдающиеся данные, все еще передающие потоком от сервера, который будет отброшен, если другой запрос будет выполняться прежде, чем все данные были считаны из сервера. | ложь | 3.0.9 |
compensateOnDuplicateKeyUpdateCounts | Драйвер должен компенсировать количества обновления "НА ДВОЙНЫХ КЛЮЧЕВЫХ" операторах INSERT (2 = 1, 0 = 1) при использовании готовых операторов? | ложь | 5.1.7 |
continueBatchOnError | Если драйвер продолжает обрабатывать пакетные команды, если один оператор перестал работать. Спецификация JDBC позволяет так или иначе (значения по умолчанию к 'истине'). | истина | 3.0.3 |
createDatabaseIfNotExist | Создает базу данных, данную в URL, если это еще не существует. Предполагает, что у сконфигурированного пользователя есть полномочия, чтобы создать базы данных. | ложь | 3.1.9 |
emptyStringsConvertToZero | Драйвер должен позволить преобразования от пустых строковых полей до числовых значений '0'? | истина | 3.1.8 |
emulateLocators | Если драйвер эмулирует java.sql. Блобы с локаторами? С этой активированной опцией драйвер задержит загрузку фактических данных Блоба, пока к тому из методов извлечения (getInputStream (), getBytes (), и т.д) на потоке данных блоба не получили доступ. Для этого, чтобы работать, следует использовать псевдоним столбца со значением столбца к подлинному имени Блоба. У функции также есть следующие ограничения: ИЗБРАННОЕ, которое создало набор результатов, должно сослаться только на одну таблицу, у таблицы должен быть первичный ключ; ИЗБРАННОЕ должно исказить исходное имя столбца блоба, определенное как строка, к альтернативному названию; ИЗБРАННОЕ должно покрыть все столбцы, которые составляют первичный ключ. | ложь | 3.1.0 |
emulateUnsupportedPstmts | Драйвер должен обнаружить подготовленные операторы, которые не поддерживаются сервером, и заменяют их стороной клиента эмулированные версии? | истина | 3.1.7 |
exceptionInterceptors | Разграниченный запятой список классов та реализация com.mysql.jdbc. ExceptionInterceptor. Эти классы инстанцируют один экземпляр для каждого подключения, и всему SQLExceptions, брошенному драйвером, позволят быть прерванным этими перехватчиками, цепочечным способом, с первым class, перечисленным как верхняя часть цепочки. | 5.1.8 | |
functionsNeverReturnBlobs | Драйвер должен всегда обрабатывать данные от функций, возвращая BLOB как Строки - определенно, чтобы работать вокруг сомнительных метаданных, возвращенных сервером для пунктов GROUP BY? | ложь | 5.0.8 |
generateSimpleParameterMetadata | Драйвер должен генерировать упрощенные метаданные параметра для PreparedStatements, когда никакие метаданные не доступны или потому что сервер не мог поддерживать подготовку оператора, или стороны сервера, подготовленные операторы отключаются? | ложь | 5.0.5 |
ignoreNonTxTables | Проигнорируйте нетранзакционное табличное предупреждение для отката? (значения по умолчанию ко 'лжи'). | ложь | 3.0.9 |
jdbcCompliantTruncation | Если бросок драйвера java.sql. Исключения DataTruncation, когда данные являются усеченными, как требуется спецификацией JDBC когда соединено с сервером, который поддерживает предупреждения (MySQL 4.1.0 и более новый)? Это свойство не имеет никакого эффекта, если sql-режим сервера включает STRICT_TRANS_TABLES. | истина | 3.1.2 |
loadBalanceAutoCommitStatementRegex | Когда выравнивание нагрузки будет включено для операторов автоматической фиксации (через loadBalanceAutoCommitStatementThreshold), счетчик оператора только постепенно увеличится, когда SQL соответствует регулярное выражение. По умолчанию, каждый оператор выпущенные соответствия. | 5.1.15 | |
loadBalanceAutoCommitStatementThreshold | Когда автоматическая фиксация включается, число операторов, которые должны быть выполнены прежде, чем инициировать выравнивание нагрузки, чтобы повторно балансироваться. Значение по умолчанию 0 причин, сбалансированные с загрузки соединения, чтобы только повторно балансироваться, когда с исключениями встречаются, или автоматическая фиксация, отключаются и транзакции, явно фиксируется или откатывается. | 0 | 5.1.15 |
loadBalanceBlacklistTimeout | Время в миллисекундах между проверками серверов, которые недоступны, управляя, сколько времени сервер живет в глобальном черном списке. | 0 | 5.1.0 |
loadBalanceConnectionGroup | Логическая группа сбалансированных с загрузки соединений в пределах classloader, используемого, чтобы управлять различными группами независимо. Если не определенное, живое управление сбалансированными с загрузки соединениями отключается. | 5.1.13 | |
loadBalanceExceptionChecker | Полностью определенное имя class пользовательского средства проверки исключения. class должен реализовать com.mysql.jdbc.LoadBalanceExceptionChecker интерфейс, и используется, чтобы осмотреть SQLExceptions и определить, должны ли они инициировать сбой - к другому узлу в сбалансированном с загрузки развертывании. | com.mysql.jdbc.StandardLoadBalanceExceptionChecker | 5.1.13 |
loadBalancePingTimeout | Время в миллисекундах, чтобы ожидать ответа ping от каждого из сбалансированных с загрузки физических соединений при использовании сбалансированного с загрузки Соединения. | 0 | 5.1.13 |
loadBalanceSQLExceptionSubclassFailover | Разграниченный запятой список классов/интерфейсов, используемых по умолчанию сбалансированное с загрузки средство проверки исключения, чтобы определить, должен ли данный SQLException инициировать failover. Сравнение делается, используя Class.isInstance (SQLException) использование брошенного SQLException. | 5.1.13 | |
loadBalanceSQLStateFailover | Разграниченный запятой список кодов SQLState, используемых по умолчанию сбалансированное с загрузки средство проверки исключения, чтобы определить, должен ли данный SQLException инициировать failover. SQLState данного SQLException оценивается, чтобы определить, начинается ли он с какого-либо значения в разграниченном запятой списке. | 5.1.13 | |
loadBalanceValidateConnectionOnSwapServer | Сбалансированное с загрузки Соединение должно явно проверить, живо ли соединение, подкачивая к новому физическому соединению в фиксации/откате? | ложь | 5.1.13 |
maxRows | Максимальное количество строк, чтобы возвратиться (0, средства значения по умолчанию возвращают все строки). | -1 | все версии |
netTimeoutForStreamingResults | Какое значение драйвер должен автоматически установить сервер, устанавливающий 'net_write_timeout' к тому, когда функция наборов результатов потоковой передачи используется? (у значения есть модуль секунд, значение '0' означает, что драйвер не будет пытаться скорректировать это значение), | 600 | 5.1.0 |
noAccessToProcedureBodies | Когда определение типов параметра процедуры для CallableStatements, и соединенного пользователя не может получить доступ к телам процедуры через, "ПОКАЗЫВАЮТ CREATE PROCEDURE" или выбирают на mysql.proc, которым драйвер должен вместо этого создать основные метаданные (все параметры, о которых сообщают как В VARCHARs, но позволяющий registerOutParameter (), чтобы быть вызванным на них так или иначе) вместо того, чтобы выдать исключение? | ложь | 5.0.3 |
noDatetimeStringSync | Не гарантируйте что ResultSet.getDatetimeType ().toString ().equals (ResultSet.getString) | ложь | 3.1.7 |
noTimezoneConversionForTimeType | Не преобразовывайте Временные стоимости, используя часовой пояс сервера если 'useTimezone' = 'истина' | ложь | 5.0.0 |
nullCatalogMeansCurrent | Когда DatabaseMetadataMethods просят параметр 'каталога', нуль значения означает использование текущий каталог? (это не JDBC-совместимо, но следует за поведением наследства от более ранних версий драйвера), | истина | 3.1.8 |
nullNamePatternMatchesAll | Если методы DatabaseMetaData, которые принимают *pattern параметры, обрабатывают нуль то же самое как '%' (это не JDBC-совместимо, однако более старые версии драйвера, принятого это отклонение от спецификации), | истина | 3.1.8 |
overrideSupportsIntegrityEnhancementFacility | Драйвер должен возвратить "true" для DatabaseMetaData.supportsIntegrityEnhancementFacility (), даже если база данных не поддерживает это к приложениям обходного решения, которые требуют, чтобы этот метод возвратил "true", чтобы сигнализировать поддержку внешних ключей, даже при том, что спецификация SQL утверждает, что это средство содержит намного больше чем только поддержка внешнего ключа (одно такое приложение, являющееся OpenOffice)? | ложь | 3.1.12 |
padCharsWithSpace | Если у столбца набора результатов есть тип CHAR, и значение не заполняет количество символов, определенных в DDL для столбца, драйвер должен дополнить остающиеся символы пространством (для соответствия ANSI)? | ложь | 5.0.6 |
педантичный | Следуйте за спецификацией JDBC к букве. | ложь | 3.0.0 |
pinGlobalTxToPhysicalConnection | При использовании XAConnections драйвер должен гарантировать, что операции на данном XID всегда направляются к тому же самому физическому соединению? Это позволяет XAConnection поддерживать "XA, ЗАПУСКАЮТСЯ... ПРИСОЕДИНИТЕСЬ" После того, как "КОНЕЦ XA" вызвали | ложь | 5.0.1 |
populateInsertRowWithDefaultValues | При использовании ResultSets, которые являются CONCUR_UPDATABLE, драйвер должен предварительно заполнить строку "вставки" со значениями по умолчанию от DDL для таблицы, используемой в запросе, таким образом, те значения сразу доступны для средств доступа ResultSet? Эта функциональность требует звонка в базу данных для метаданных каждый раз, когда набор результатов этого типа создается. Если отключено (значение по умолчанию), значения по умолчанию будут заполнены внутренний звонок refreshRow (), который задерживает значения по умолчанию и/или оценивает измененный триггерами. | ложь | 5.0.5 |
processEscapeCodesForPrepStmts | Драйвер должен обработать коды escape в запросах, которые готовятся? | истина | 3.1.12 |
queryTimeoutKillsConnection | Если тайм-аут, данный в Statement.setQueryTimeout (), истекает, драйвер должен насильственно прервать Соединение вместо того, чтобы пытаться прервать запрос? | ложь | 5.1.9 |
relaxAutoCommit | Если версия MySQL, с которым соединяется драйвер, не поддерживает транзакции, все еще позволяет вызовам фиксировать (), откат () и setAutoCommit () (истина/ложь, значения по умолчанию ко 'лжи')? | ложь | 2.0.13 |
retainStatementAfterResultSetClose | Если драйвер сохраняет ссылку Оператора в ResultSet после того, как ResultSet.close () вызвали. Это не JDBC-совместимо после JDBC-4.0. | ложь | 3.1.11 |
rollbackOnPooledClose | Драйвер должен выпустить откат (), когда логическое соединение в пуле закрывается? | истина | 3.0.15 |
runningCTS13 | Включает обходным решениям для ошибок в соответствии Sun JDBC testsuite версия 1.3 | ложь | 3.1.7 |
serverTimezone | Обнаружение/отображение переопределения часового пояса. Используемый, когда часовой пояс от сервера не отображается на часовой пояс Java | 3.0.2 | |
statementInterceptors | Разграниченный запятой список классов та реализация "com.mysql.jdbc. StatementInterceptor", который должен быть размещен "промежуточный" выполнение запроса, чтобы влиять на результаты. StatementInterceptors являются "chainable", результаты, возвращенные "текущим" перехватчиком, будут переданы следующему в в цепочке, от слева направо порядка, как определено в этом свойстве. | 5.1.1 | |
strictFloatingPoint | Используемый только в более старых версиях теста соответствия | ложь | 3.0.0 |
strictUpdates | Драйвер должен сделать строгую проверку (все выбранные первичные ключи) обновляемых наборов результатов (истина, ложь, значения по умолчанию к 'истине')? | истина | 3.0.4 |
tinyInt1isBit | Драйвер должен обработать тип данных TINYINT (1) как тип BIT (потому что сервер тихо преобразовывает BIT-> TINYINT (1), составляя таблицы)? | истина | 3.0.16 |
transformedBitIsBoolean | Если драйвер преобразовывает TINYINT (1) в различный тип, это должно использовать БУЛЕВ вместо BIT для будущей совместимости с MySQL 5.0, поскольку у MySQL 5.0 есть НЕМНОГО типа? | ложь | 3.1.9 |
treatUtilDateAsTimestamp | Если обработка драйвера java.util. Дата как МЕТКА ВРЕМЕНИ в целях PreparedStatement.setObject ()? | истина | 5.0.5 |
ultraDevHack | Создайте PreparedStatements для prepareCall () когда требующийся, потому что Ультрадев повреждается и выпускает prepareCall () для _all_ операторов? (истина/ложь, значения по умолчанию ко 'лжи') | ложь | 2.0.3 |
useAffectedRows | Не устанавливайте флаг CLIENT_FOUND_ROWS, соединяясь с сервером (не JDBC-совместимый, повредит большинство приложений, которые полагаются "на найденные" строки по сравнению со "строками, на которые влияют", для операторов DML), но действительно заставляет "корректные" количества обновления от операторов "INSERT... ON DUPLICATE KEY UPDATE" быть возвращенными сервером. | ложь | 5.1.7 |
useGmtMillisForDatetimes | Преобразуйте между часовым поясом сеанса, и GMT прежде, чем создать экземпляры Даты и Метки времени (значение "лжи" является поведением наследства, "истина" приводит к Более JDBC-совместимому поведению. | ложь | 3.1.12 |
useHostsInPrivileges | Добавьте '@hostname' к пользователям в DatabaseMetaData.getColumn/TablePrivileges () (истина/ложь), значения по умолчанию к 'истине'. | истина | 3.0.2 |
useInformationSchema | Когда соединено с MySQL 5.0.7 или более новый, драйвер должен использовать INFORMATION_SCHEMA, чтобы получить информацию, используемую DatabaseMetaData? | ложь | 5.0.0 |
useJDBCCompliantTimezoneShift | Если использование драйвера JDBC-совместимые правила, преобразовывая информацию о часовом поясе значений TIME/TIMESTAMP/DATETIME для тех параметров JDBC, которые берут java.util. Календарный параметр? (Заметьте, что эта опция является монопольной из "useTimezone=true" параметра конфигурации.) | ложь | 5.0.0 |
useLegacyDatetimeCode | Используйте код для DATE/TIME/DATETIME/TIMESTAMP, обрабатывающего в наборах результатов и операторах, который последовательно обрабатывает преобразования часового пояса от клиента к серверу и назад снова, или используйте код наследства для этих типов данных, который был в драйвере для назад-совместимости? | истина | 5.1.6 |
useOldAliasMetadataBehavior | Драйвер должен использовать поведение наследства для пунктов "AS" на столбцах и таблицах, и только возвратить псевдонимы (если кто-либо) для ResultSetMetaData.getColumnName () или ResultSetMetaData.getTableName (), а не исходный столбец/имя таблицы? В 5.0.x, значение по умолчанию было истиной. | ложь | 5.0.4 |
useOldUTF8Behavior | Используйте поведение UTF-8, которое драйвер сделал, связываясь с 4.0 и более старые серверы | ложь | 3.1.6 |
useOnlyServerErrorMessages | Не предварительно ожидайте 'стандартные' сообщения об ошибках SQLState к сообщениям об ошибках, возвращенным сервером. | истина | 3.0.15 |
useSSPSCompatibleTimezoneShift | Переходя от среды, которая использовала сторону сервера, подготовленные операторы, и свойство конфигурации "useJDBCCompliantTimeZoneShift" набор к "истине", используют совместимое поведение, если не используя сторону сервера, которую подготовленные операторы, отправляя МЕТКУ ВРЕМЕНИ оценивают серверу MySQL. | ложь | 5.0.5 |
useServerPrepStmts | Используйте сторону сервера подготовленные операторы, если сервер поддерживает их? | ложь | 3.1.0 |
useSqlStateCodes | Используйте коды состояния Стандарта SQL вместо 'наследства' X/Open/SQL коды состояния (истина/ложь), значение по умолчанию является 'истиной' | истина | 3.1.3 |
useStreamLengthsInPrepStmts | Потоковый параметр длины чести в PreparedStatement/ResultSet.setXXXStream () вызовы метода (истина/ложь, значения по умолчанию к 'истине')? | истина | 3.0.2 |
useTimezone | Преобразуйте типы времени/даты между часовыми поясами клиента и сервера (истина/ложь, значения по умолчанию ко 'лжи')? | ложь | 3.0.2 |
useUnbufferedInput | Не используйте BufferedInputStream для того, чтобы считать данные из сервера | истина | 3.0.11 |
yearIsDateType | Если обработка драйвера JDBC тип MySQL "ГОД" как java.sql. Дата, или как КОРОТКОЕ? | истина | 3.1.9 |
zeroDateTimeBehavior | Что должно произойти, когда драйвер встречается со значениями DATETIME, которые составляются полностью нулей (используемый MySQL, чтобы представить недопустимые даты)? Допустимые значения являются "исключением", "вокруг" и "convertToNull". | исключение | 3.1.4 |
Connector/J также поддерживает доступ к MySQL, используя именованные каналы на Windows NT, Windows 2000, или
Windows XP, используя NamedPipeSocketFactory
как фабрика сменного сокета, используя
socketFactory
свойство. Если Вы не используете a namedPipePath
свойство, значение по умолчанию '\\.\pipe\MySQL'
используется. Если Вы используете
NamedPipeSocketFactory
, значения имени хоста и номера порта в url JDBC
игнорируются. Чтобы активировать эту опцию, используйте:
socketFactory=com.mysql.jdbc.NamedPipeSocketFactory
Именованные каналы только работают, соединяясь с сервером MySQL на той же самой физической машине, куда драйвер JDBC работает. В простых тестах производительности доступ именованного канала между 30 на %-50 % быстрее чем стандартный доступ TCP/IP. Однако, это изменяется на систему, и именованные каналы медленнее чем TCP/IP во многих конфигурациях Windows.
Чтобы создать Ваши собственные фабрики сокета, следуйте за примером кода в com.mysql.jdbc.NamedPipeSocketFactory
,
или com.mysql.jdbc.StandardSocketFactory
.
useConfigs
опция соединения является удобным сокращением для того, чтобы
определить комбинации опций для определенных сценариев. Значения аргументов, которые можно использовать с
этой опцией, соответствуют именам .properties
файлы в пределах Connector/J
mysql-connector-java-
Файл JAR. Например, Connector/J 5.1.9 драйвера включает следующие файлы свойств конфигурации: version
-bin.jar
$ unzip mysql-connector-java-5.1.19-bin.jar '*/configs/*'Archive: mysql-connector-java-5.1.19-bin.jar creating: com/mysql/jdbc/configs/ inflating: com/mysql/jdbc/configs/3-0-Compat.properties inflating: com/mysql/jdbc/configs/5-0-Compat.properties inflating: com/mysql/jdbc/configs/clusterBase.properties inflating: com/mysql/jdbc/configs/coldFusion.properties inflating: com/mysql/jdbc/configs/fullDebug.properties inflating: com/mysql/jdbc/configs/maxPerformance.properties inflating: com/mysql/jdbc/configs/solarisMaxPerformance.properties
Чтобы определить одну из этих комбинаций опций, определить useConfigs=3-0-Compat
, useConfigs=maxPerformance
, и
так далее. Следующие разделы показывают варианты, которые являются частью каждого useConfigs
установка. Для деталей того, почему каждый включается, см. комментарии в .properties
файлы.
emptyStringsConvertToZero=truejdbcCompliantTruncation=falsenoDatetimeStringSync=truenullCatalogMeansCurrent=truenullNamePatternMatchesAll=truetransformedBitIsBoolean=falsedontTrackOpenResources=truezeroDateTimeBehavior=convertToNulluseServerPrepStmts=falseautoClosePStmtStreams=trueprocessEscapeCodesForPrepStmts=falseuseFastDateParsing=falsepopulateInsertRowWithDefaultValues=falseuseDirectRowUnpack=false
useDirectRowUnpack=false
autoReconnect=truefailOverReadOnly=falseroundRobinLoadBalance=true
useDynamicCharsetInfo=falsealwaysSendSetIsolation=falseuseLocalSessionState=trueautoReconnect=true
profileSQL=truegatherPerMetrics=trueuseUsageAdvisor=truelogSlowQueries=trueexplainSlowQueries=true
cachePrepStmts=truecacheCallableStmts=truecacheServerConfiguration=trueuseLocalSessionState=trueelideSetAutoCommits=truealwaysSendSetIsolation=falseenableQueryTimeouts=false
useUnbufferedInput=falseuseReadAheadInput=falsemaintainTimeStats=false