mysql的JDBC參數詳細介紹

jopen 9年前發布 | 20K 次閱讀 MySQL JDBC Java開發

</tr>

</tr>

</tr>

</tr>

</tr>

</tr>

屬性名

</td>

定義

</td>

要求?

</td>

默認值

</td>

版本

</td> </tr> </tbody>

Connection/Authentication(連接/鑒定)

</td>





user

</td>

連接的用戶

</td>

No

</td>


全部

</td> </tr>

password

</td>

連接時使用的密碼。

</td>

No

</td>


全部

</td> </tr>

socketFactory

</td>

驅動程序用于創建與服務器套接字連接的類的名稱。該類必須實現了接口“com.mysql.jdbc.SocketFactory”,并有公共無參量構造函數。

</td>

No

</td>

com.mysql.jdbc.

StandardSocketFactory

</td>

3.0.3

</td> </tr>

connectTimeout

</td>

套接字連接的超時(單位為毫秒),0表示無超時。僅對JDK-1.4或更新版本有效。默認值為“0”。

</td>

No

</td>

0

</td>

3.0.1

</td> </tr>

socketTimeout

</td>

網絡套接字連接的超時(默認值0表示無超時)。

</td>

No

</td>

0

</td>

3.0.1

</td> </tr>

useConfigs

</td>

在解析URL屬性或應用用戶指定的屬性之前,加載由逗號“,”分隔的配置屬性列表。在文檔的“配置”部分中解釋了這些配置。

</td>

No

</td>


3.1.5

</td> </tr>

interactiveClient

</td>

設置CLIENT_INTERACTIVE標志,根據INTERACTIVE_TIMEOUT而不是WAIT_TIMEOUT向MySQL通報超時連接。

</td>

No

</td>

false

</td>

3.1.0

</td> </tr>

propertiesTransform

</td>

com.mysql.jdbc.ConnectionPropertiesTransform的1個實施實例,在嘗試連接之前,驅動程序將使用它來更改傳遞給驅動的URL屬性。

</td>

No

</td>


3.1.4

</td> </tr>

useCompression

</td>

與服務器進行通信時采用zlib壓縮(真/假)? 默認值為“假”。

</td>

No

</td>

false

</td>

3.0.17

</td> </tr>

High Availability and Clustering (高可用性和簇集)  

</td>





autoReconnect

</td>

驅 動程序是否應嘗試再次建立失效的和/或死連接?   如果允許,對于在失效或死連接上發出的查詢(屬于當前事務),驅動程序將拋出異常,但在新事務的連接上發出下一個查詢時,將嘗試再連接。不推薦使用該特 性,這是因為,當應用程序不能恰當處理SQLExceptions時,它會造成與會話狀態和數據一致性有關的副作用,設計它的目的僅用于下述情況,即,當 你無法配置應用程序來恰當處理因死連接和/或無效連接導致的SQLExceptions時。作為可選方式,可將MySQL服務器變量 “wait_timeout”設置為較高的值,而不是默認的8小時。

</td>

No

</td>

false

</td>

1.1

</td> </tr>

autoReconnectForPools

</td>

使用適合于連接池的再連接策略(默認值為“假”)。

</td>

No

</td>

false

</td>

3.1.3

</td> </tr>

failOverReadOnly

</td>

在autoReconnect模式下出現故障切換時,是否應將連接設置為“只讀”?

</td>

No

</td>

true

</td>

3.0.12

</td> </tr>

reconnectAtTxEnd

</td>

如果將autoReconnect設置為“真”,在每次事務結束后驅動程序是否應嘗試再連接?

</td>

No

</td>

false

</td>

3.0.10

</td> </tr>

roundRobinLoadBalance

</td>

啟用了autoReconnect而且failoverReadonly為“假”時,是否應按照循環方式挑選要連接的主機?

</td>

No

</td>

false

</td>

3.1.2

</td> </tr>

queriesBeforeRetryMaster

</td>

出現故障切換(使用多主機故障切換)并返回主機之前發出的查詢數。無論首先滿足了哪個條件,“queriesBeforeRetryMaster”或“secondsBeforeRetryMaster”,均會再次與主機進行連接。默認值為“50”。

</td>

No

</td>

50

</td>

3.0.2

</td> </tr>

secondsBeforeRetryMaster

</td>

出現故障切換后,在嘗試再次連接到主服務器之前,驅動程序應等待的時間?   無論首先滿足了哪個條件,“queriesBeforeRetryMaster”或“secondsBeforeRetryMaster”,均會再次與主 機進行連接。單位為秒,默認值為30。

</td>

No

</td>

30

</td>

3.0.2

</td> </tr>

enableDeprecatedAutoreconnect

</td>

自3.2版開始,自動再連接功能受到冷落,在3.3版中將刪除該功能。將該屬性設置為“真”可禁止檢查配置的特性。

</td>

No

</td>

false

</td>

3.2.1

</td> </tr>

Security (安全)

</td>





allowMultiQueries

</td>

在一條語句中,允許使用“;”來分隔多條查詢(真/假,默認值為“假”)。

</td>

No

</td>

false

</td>

3.1.1

</td> </tr>

useSSL

</td>

與服務器進行通信時使用SSL(真/假),默認值為“假”。

</td>

No

</td>

false

</td>

3.0.2

</td> </tr>

requireSSL

</td>

要求SSL連接,useSSL=true? 默認值為“假”。

</td>

No

</td>

false

</td>

3.1.0

</td> </tr>

allowUrlInLocalInfile

</td>

驅動程序在是“LOAD DATA LOCAL INFILE”語句中否允許URL?

</td>

No

</td>

false

</td>

3.1.4

</td> </tr>

paranoid

</td>

采取措施,防止在錯誤信息中泄漏敏感信息,并可可能時清除保存敏感數據的數據結構?   默認值為“假”。

</td>

No

</td>

false

</td>

3.0.1

</td> </tr>

Performance Extensions (性能擴展)

</td>





metadataCacheSize

</td>

如果將cacheResultSetMetaData設置為“真”,對cacheResultSetMetadata的查詢次數(默認值為50)。

</td>

No

</td>

50

</td>

3.1.1

</td> </tr>

prepStmtCacheSize

</td>

如果允許預處理語句緩沖功能,應緩沖處理多少條預處理語句?

</td>

No

</td>

25

</td>

3.0.10

</td> </tr>

prepStmtCacheSqlLimit

</td>

如果允許預處理語句緩沖功能,驅動程序將執行解析緩沖處理的最大SQL是什么?

</td>

No

</td>

256

</td>

3.0.10

</td> </tr>

maintainTimeStats

</td>

驅動程序是否應維持各種內部定時器,以允許空閑時間計算,以及與服務器的連接失敗時允許提供更詳細的錯誤消息?   將該屬性設置為“假”,對于每次查詢,至少能減少兩次對System.getCurrentTimeMillis()的調用。

</td>

No

</td>

true

</td>

3.1.9

</td> </tr>

blobSendChunkSize

</td>

組塊,當通過ServerPreparedStatements發送BLOB/CLOB時使用。

</td>

No

</td>

1048576

</td>

3.1.9

</td> </tr>

cacheCallableStmts

</td>

驅動程序是否應對CallableStatements的解析過程執行緩沖處理。

</td>

No

</td>

false

</td>

3.1.2

</td> </tr>

cachePrepStmts

</td>

驅動程序是否應對客戶端預處理語句的PreparedStatements的解析過程執行緩沖處理,是否應檢查服務器端預處理語句的適用性以及服務器端預處理語句本身?

</td>

No

</td>

false

</td>

3.0.10

</td> </tr>

cacheResultSetMetadata

</td>

驅動程序是否應對用于Statements和PreparedStatements的ResultSetMetaData執行緩沖處理? 要求 JDK-1.4+,真/假,默認為“假”。

</td>

No

</td>

false

</td>

3.1.1

</td> </tr>

cacheServerConfiguration

</td>

驅動程序是否應根據每條URL對“HOW VARIABLES”和“SHOW COLLATION”的結果執行緩沖處理?

</td>

No

</td>

false

</td>

3.1.5

</td> </tr>

dontTrackOpenResources

</td>

JDBC規范要求驅動程序自動跟蹤和關閉資源,但是,如果你的應用程序不能明確調用作用在語句或結果集上的close(),可能會導致內存泄漏。將該屬性設置為“真”,可放寬該限制,對于某些應用程序,會提供更高的內存效率。

</td>

No

</td>

false

</td>

3.1.7

</td> </tr>

dynamicCalendars

</td>

需要時,驅動程序是否應檢索默認日歷,或根據連接/會話對其進行緩沖處理?

</td>

No

</td>

false

</td>

3.1.5

</td> </tr>

elideSetAutoCommits

</td>

如果使用MySQL-4.1或更高版本,當服務器的狀態與Connection.setAutoCommit(boolean)請求的狀態不匹配時,驅動程序是否僅應發出“set autocommit=n”查詢?

</td>

No

</td>

false

</td>

3.1.3

</td> </tr>

holdResultsOpenOverStatementClose

</td>

驅動程序是否應按照JDBC規范的要求關閉Statement.close()上的結果集?

</td>

No

</td>

false

</td>

3.1.7

</td> </tr>

locatorFetchBufferSize

</td>

如果將“emulateLocators”配置為“真”,當獲取關于getBinaryInputStream的BLOB數據時,緩沖區的大小應是多少?

</td>

No

</td>

1048576

</td>

3.2.1

</td> </tr>

useFastIntParsing

</td>

是否使用內部“String->Integer”轉換子程序來避免創建過多對象?

</td>

No

</td>

true

</td>

3.1.4

</td> </tr>

useLocalSessionState

</td>

驅動程序是否應引用autocommit的內部值,以及由Connection.setAutoCommit()和Connection.setTransactionIsolation()設置的事務隔離,而不是查詢數據庫?

</td>

No

</td>

false

</td>

3.1.7

</td> </tr>

useNewIO

</td>

驅動程序是否應將java.nio.* interfaces用于網絡通信(真/假),默認為“假”。

</td>

No

</td>

false

</td>

3.1.0

</td> </tr>

useReadAheadInput

</td>

從服務器讀取數據時,是否使用較新的、優化的非成組緩沖輸入流?

</td>

No

</td>

true

</td>

3.1.5

</td> </tr>

Debuging/Profiling (調試/ 仿形)

</td>





logger

</td>

實現了com.mysql.jdbc.log.Log的類的名稱,com.mysql.jdbc.log.Log用于記錄消息(默認為“com.mysql.jdbc.log.StandardLogger”,它會將日志記錄到STDERR)。

</td>

No

</td>

com.mysql.jdbc.log.

StandardLogger

</td>

3.1.1

</td> </tr>

profileSQL

</td>

跟蹤查詢以及它們對已配制記錄器的執行/獲取次數(真/假),默認為“假”。

</td>

No

</td>

false

</td>

3.1.0

</td> </tr>

reportMetricsIntervalMillis

</td>

如果允許“gatherPerfMetrics”,記錄它們的頻率是多少(單位毫秒)?

</td>

No

</td>

30000

</td>

3.1.2

</td> </tr>

maxQuerySizeToLog

</td>

調試或仿形時,控制將記錄的查詢的最大長度/大小。

</td>

No

</td>

2048

</td>

3.1.3

</td> </tr>

packetDebugBufferSize

</td>

當“enablePacketDebug”為“真”時,需要保留的最大信息包數目。

</td>

No

</td>

20

</td>

3.1.3

</td> </tr>

slowQueryThresholdMillis

</td>

如果允許“logSlowQueries”,在將查詢記錄為“慢”之前的查詢時間是多少(毫秒)?

</td>

No

</td>

2000

</td>

3.1.2

</td> </tr>

useUsageAdvisor

</td>

驅動程序是否應發出“使用情況”警告,就DBC和MySQL Connector/J的恰當和高效使用給出建議(真/假,默認為“假”)?

</td>

No

</td>

false

</td>

3.1.1

</td> </tr>

autoGenerateTestcaseScript

</td>

驅動程序是否應將正在執行的SQL(包括服務器端預處理語句)轉儲到STDERR?

</td>

No

</td>

false

</td>

3.1.9

</td> </tr>

dumpQueriesOnException

</td>

驅動程序是否應將發送至服務器的查詢內容轉儲到SQLExceptions中?

</td>

No

</td>

false

</td>

3.1.3

</td> </tr>

enablePacketDebug

</td>

允許時,將保留“packetDebugBufferSize”信息包的環形緩沖區,并當在驅動程序代碼的關鍵區域拋出異常時進行轉儲。

</td>

No

</td>

false

</td>

3.1.3

</td> </tr>

explainSlowQueries

</td>

如果允許了“logSlowQueries”,驅動程序是否應在服務器上自動發出“EXPLAIN”,并以WARN級別將結果發送給配置好的日志?

</td>

No

</td>

false

</td>

3.1.2

</td> </tr>

logSlowQueries

</td>

是否要記錄時間長于“slowQueryThresholdMillis”的查詢?

</td>

No

</td>

false

</td>

3.1.2

</td> </tr>

traceProtocol

</td>

是否應記錄跟蹤級網絡協議?

</td>

No

</td>

false

</td>

3.1.2

</td> </tr>

Miscellaneous (其他)

</td>





useUnicode

</td>

處理字符串時,驅動程序是否應使用Unicode字符編碼? 僅應在驅動程序無法確定字符集映射,或你正在強制驅動程序使用MySQL不是固有支持的字符集時(如UTF-8)才應使用。真/假,默認為“真”。

</td>

No

</td>

false

</td>

1.1g

</td> </tr>

characterEncoding

</td>

如果“useUnicode”被設置為“真”,處理字符串時,驅動程序應使用什么字符編碼?   默認為“autodetect”。

</td>

No

</td>


1.1g

</td> </tr>

characterSetResults

</td>

字符集,用于通知服務器以何種字符集返回結果。

</td>

No

</td>


3.0.13

</td> </tr>

connectionCollation

</td>

如果設置了它,將通知服務器通過“set collation_connection”使用該校對。

</td>

No

</td>


3.0.13

</td> </tr>

sessionVariables

</td>

以逗號隔開的“名稱/值”對列表,當驅動程序建立了連接后,以“SET SESSION ...”的方式將其發送給服務器。

</td>

No

</td>


3.1.8

</td> </tr>

allowNanAndInf

</td>

驅動程序是否應在PreparedStatement.setDouble()中允許NaN或+/- INF值?

</td>

No

</td>

false

</td>

3.1.5

</td> </tr>

autoDeserialize

</td>

驅動程序是否應自動檢測并串并轉換保存在BLOB字段中的對象?

</td>

No

</td>

false

</td>

3.1.5

</td> </tr>

capitalizeTypeNames

</td>

是否將DatabaseMetaData中的類型名轉換為大寫? 通常僅在使用WebObjects時有用,真/假。默認為“假”。

</td>

No

</td>

false

</td>

2.0.7

</td> </tr>

clobberStreamingResults

</td>

這會使“流式”結果集被自動關閉,如果在所有數據尚未從服務器中讀取完之前,執行了另一查詢,正在從服務器流出的任何未完成數據均將丟失。

</td>

No

</td>

false

</td>

3.0.9

</td> </tr>

continueBatchOnError

</td>

如果一條語句失敗,驅動程序是否應繼續處理批命令? JDBC規范允許任何一種方式(默認為“真”)。

</td>

No

</td>

true

</td>

3.0.3

</td> </tr>

createDatabaseIfNotExist

</td>

如果不存在,創建URL中給定的數據庫。假定用戶具有創建數據庫的權限。

</td>

No

</td>

false

</td>

3.1.9

</td> </tr>

emptyStringsConvertToZero

</td>

驅動程序是否應允許從空字符串字段到數值“0”的轉換?

</td>

No

</td>

true

</td>

3.1.8

</td> </tr>

emulateLocators

</td>

N/A

</td>

No

</td>

false

</td>

3.1.0

</td> </tr>

emulateUnsupportedPstmts

</td>

驅動程序是否應檢測不被服務器支持的預處理語句,并用客戶端模擬版替換它們?

</td>

No

</td>

true

</td>

3.1.7

</td> </tr>

ignoreNonTxTables

</td>

是否忽略關于回退的非事務表?   默認值為“假”。

</td>

No

</td>

false

</td>

3.0.9

</td> </tr>

jdbcCompliantTruncation

</td>

連接到支持告警的服務器時(MySQL 4.1.0和更高版本),當按照JDBC的要求截短數據時,驅動程序是否應拋出java.sql.DataTruncation異常?

</td>

No

</td>

true

</td>

3.1.2

</td> </tr>

maxRows

</td>

返回的最大行數(0,默認值表示返回所有行)。

</td>

No

</td>

-1

</td>

all versions

</td> </tr>

noDatetimeStringSync

</td>

不保證ResultSet.getDatetimeType().toString().equals(ResultSet.getString()。

</td>

No

</td>

false

</td>

3.1.7

</td> </tr>

nullCatalogMeansCurrent

</td>

當DatabaseMetadataMethods請求“目錄”參數時,值“Null”是否意味著使用當前目錄? 它不兼容JDBC,但符合驅動程序早期版本的傳統行為。

</td>

No

</td>

true

</td>

3.1.8

</td> </tr>

nullNamePatternMatchesAll

</td>

接受*pattern參數的DatabaseMetaData方法是否應將null按對待“%”的相同方式處理(不兼容JDBC,但驅動程序的早期版本能接受與規范的這類偏離)。

</td>

No

</td>

true

</td>

3.1.8

</td> </tr>

pedantic

</td>

嚴格遵守JDBC規范。

</td>

No

</td>

false

</td>

3.0.0

</td> </tr>

relaxAutoCommit

</td>

如果驅動程序所連接的MySQL服務器的版本不支持事務,仍允許調用commit()、rollback()和setAutoCommit()?真/假,默認為“假”。

</td>

No

</td>

false

</td>

2.0.13

</td> </tr>

retainStatementAfterResultSetClose

</td>

調用ResultSet.close()后,驅動程序是否應將語句引用保存在結果集中? 在JDBC-4.0后,與JDBC不兼容。

</td>

No

</td>

false

</td>

3.1.11

</td> </tr>

rollbackOnPooledClose

</td>

當連接池中的邏輯連接關閉時,驅動程序是否應發出rollback()?

</td>

No

</td>

true

</td>

3.0.15

</td> </tr>

runningCTS13

</td>

允許在Sun與JDBC兼容的testsuite   1.3版中處理缺陷。

</td>

No

</td>

false

</td>

3.1.7

</td> </tr>

serverTimezone

</td>

覆蓋時區的檢測/映射。當服務器的時區為映射到Java時區時使用。

</td>

No

</td>


3.0.2

</td> </tr>

strictFloatingPoint

</td>

僅在兼容性測試的早期版本中使用。

</td>

No

</td>

false

</td>

3.0.0

</td> </tr>

strictUpdates

</td>

驅動程序是否應對可更新結果集進行嚴格檢查(選擇所有的主鍵)?真/假,默認為“真”。

</td>

No

</td>

true

</td>

3.0.4

</td> </tr>

tinyInt1isBit

</td>

驅動程序是否應將數據類型TINYINT(1)當作BIT類型對待?創建表時,服務器會執行BIT -> TINYINT(1)操作。

</td>

No

</td>

true

</td>

3.0.16

</td> </tr>

transformedBitIsBoolean

</td>

如果驅動程序將TINYINT(1)轉換為不同的類型,為了與MySQL-5.0兼容,驅動程序是否應使用BOOLEAN取代BIT?這是因為MySQL-5.0具有BIT類型。

</td>

No

</td>

false

</td>

3.1.9

</td> </tr>

ultraDevHack

</td>

由于UltraDev已損壞,并為所有語句發出了prepareCall(),需要時,是否要為prepareCall()創建PreparedStatements?

真/假,默認值為“假”。

</td>

No

</td>

false

</td>

2.0.3

</td> </tr>

useHostsInPrivileges

</td>

在DatabaseMetaData.getColumn/TablePrivileges()中為用戶添加“@hostname”。真/假,默認為“真”。

</td>

No

</td>

true

</td>

3.0.2

</td> </tr>

useOldUTF8Behavior

</td>

與4.0和更早版本的服務器進行通信時,使用UTF-8。

</td>

No

</td>

false

</td>

3.1.6

</td> </tr>

useOnlyServerErrorMessages

</td>

對服務器返回的錯誤消息,不事先設定“標準的”SQLState錯誤消息。

</td>

No

</td>

true

</td>

3.0.15

</td> </tr>

useServerPrepStmts

</td>

如果服務器支持,是否使用服務器端預處理語句?   默認值為“真”。

</td>

No

</td>

true

</td>

3.1.0

</td> </tr>

useSqlStateCodes

</td>

使用SQL標準狀態碼取代“傳統的”X/Open/SQL狀態碼,真/假,默認為“真”。

</td>

No

</td>

true

</td>

3.1.3

</td> </tr>

useStreamLengthsInPrepStmts

</td>

是否采用PreparedStatement/ResultSet.setXXXStream()方法調用中的流長度參數?真/假,默認為“真”。

</td>

No

</td>

true

</td>

3.0.2

</td> </tr>

useTimezone

</td>

是否在客戶端和服務器時區間轉換時間/日期類型(真/假,默認為“假”)?

</td>

No

</td>

false

</td>

3.0.2

</td> </tr>

useUnbufferedInput

</td>

不使用BufferedInputStream來從服務器讀取數據。

</td>

No

</td>

true

</td>

3.0.11

</td> </tr>

yearIsDateType

</td>

JDBC驅動程序是否應將MySQL類型“YEAR”當作java.sql.Date或SHORT對待?

</td>

No

</td>

true

</td>

3.1.9

</td> </tr>

zeroDateTimeBehavior

</td>

當驅動程序遇到全由0組成的DATETIME值時,應出現什么?MySQL使用它來表示無效日期。有效值是“exception”、“round”和“convertToNull”。

</td>

No

</td>

exception

</td>

3.1.4

</td> </tr> </tbody> </table>

原版手冊參考地址如下:http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html

來自:http://my.oschina.net/zimingforever/blog/371571

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
  • sesese色