一是:DriverManager.getConnection(String url),
二是:DriverManager.getConnection(String url,String user,String password);
三是:DriverManager.getConnection(String url,Properties info);
第一種與第二種函數常見(jiàn),但是第三種方式就不是太常見(jiàn)了,我查了半天書(shū),只知道第三種函數十分有用,能修改數據庫的默認連接設置參數,但是有那些參數,只說(shuō)"具體情況具體分析"----讓讀者自己查去,無(wú)奈之下,只得運用搜索引擎大法.
經(jīng)過(guò)一番搜索,還真讓我查到了MySQL的JDBC的連接屬性,本著(zhù)共享的原則,就它貼出來(lái)了
Connection/Authentication(連接/鑒定) | ||
user | 連接的用戶(hù) | No |
password | 連接時(shí)使用的密碼。 | No |
socketFactory | 驅動(dòng)程序用于創(chuàng )建與服務(wù)器套接字連接的類(lèi)的名稱(chēng)。該類(lèi)必須實(shí)現了接口“com.mysql.jdbc.SocketFactory”,并有公共無(wú)參量構造函數。 | No |
connectTimeout | 套接字連接的超時(shí)(單位為毫秒),0表示無(wú)超時(shí)。僅對JDK-1.4或更新版本有效。默認值為“0”。 | No |
socketTimeout | 網(wǎng)絡(luò )套接字連接的超時(shí)(默認值0表示無(wú)超時(shí))。 | No |
useConfigs | 在解析URL屬性或應用用戶(hù)指定的屬性之前,加載由逗號“,”分隔的配置屬性列表。在文檔的“配置”部分中解釋了這些配置。 | No |
interactiveClient | 設置CLIENT_INTERACTIVE標志,根據INTERACTIVE_TIMEOUT而不是WAIT_TIMEOUT向MySQL通報超時(shí)連接。 | No |
propertiesTransform | com.mysql.jdbc.ConnectionPropertiesTransform的1個(gè)實(shí)施實(shí)例,在嘗試連接之前,驅動(dòng)程序將使用它來(lái)更改傳遞給驅動(dòng)的URL屬性。 | No |
useCompression | 與服務(wù)器進(jìn)行通信時(shí)采用zlib壓縮(真/假)? 默認值為“假”。 | No |
High Availability and Clustering(高可用性和簇集) | ||
autoReconnect | 驅動(dòng)程序是否應嘗試再次建立失效的和/或死連接?如果允許,對于在失效或死連接上發(fā)出的查詢(xún)(屬于當前事務(wù)),驅動(dòng)程序將拋出異常,但在新事務(wù)的連接上發(fā)出下一個(gè)查詢(xún)時(shí),將嘗試再連接。不推薦使用該特性,這是因為,當應用程序不能恰當處理SQLExceptions時(shí),它會(huì )造成與會(huì )話(huà)狀態(tài)和數據一致性有關(guān)的副作用,設計它的目的僅用于下述情況,即,當你無(wú)法配置應用程序來(lái)恰當處理因死連接和/或無(wú)效連接導致的SQLExceptions時(shí)。作為可選方式,可將MySQL服務(wù)器變量 “wait_timeout”設置為較高的值,而不是默認的8小時(shí)。 | No |
autoReconnectForPools | 使用適合于連接池的再連接策略(默認值為“假”)。 | No |
failOverReadOnly | 在autoReconnect模式下出現故障切換時(shí),是否應將連接設置為“只讀”? | No |
reconnectAtTxEnd | 如果將autoReconnect設置為“真”,在每次事務(wù)結束后驅動(dòng)程序是否應嘗試再連接? | No |
roundRobinLoadBalance | 啟用了autoReconnect而且failoverReadonly為“假”時(shí),是否應按照循環(huán)方式挑選要連接的主機? | No |
queriesBeforeRetryMaster | 出現故障切換(使用多主機故障切換)并返回主機之前發(fā)出的查詢(xún)數。無(wú)論首先滿(mǎn)足了哪個(gè)條件,“queriesBeforeRetryMaster”或“secondsBeforeRetryMaster”,均會(huì )再次與主機進(jìn)行連接。默認值為“50”。 | No |
secondsBeforeRetryMaster | 出現故障切換后,在嘗試再次連接到主服務(wù)器之前,驅動(dòng)程序應等待的時(shí)間? 無(wú)論首先滿(mǎn)足了哪個(gè)條件,“queriesBeforeRetryMaster”或“secondsBeforeRetryMaster”,均會(huì )再次與主機進(jìn)行連接。單位為秒,默認值為30。 | No |
enableDeprecatedAutoreconnect | 自3.2版開(kāi)始,自動(dòng)再連接功能受到冷落,在3.3版中將刪除該功能。將該屬性設置為“真”可禁止檢查配置的特性。 | No |
Security(安全) | ||
allowMultiQueries | 在一條語(yǔ)句中,允許使用“;”來(lái)分隔多條查詢(xún)(真/假,默認值為“假”)。 | No |
useSSL | 與服務(wù)器進(jìn)行通信時(shí)使用SSL(真/假),默認值為“假”。 | No |
requireSSL | 要求SSL連接,useSSL=true? 默認值為“假”。 | No |
allowUrlInLocalInfile | 驅動(dòng)程序在是“LOAD DATA LOCAL INFILE”語(yǔ)句中否允許URL? | No |
paranoid | 采取措施,防止在錯誤信息中泄漏敏感信息,并可可能時(shí)清除保存敏感數據的數據結構? 默認值為“假”。 | No |
Performance Extensions(性能擴展) | ||
metadataCacheSize | 如果將cacheResultSetMetaData設置為“真”,對cacheResultSetMetadata的查詢(xún)次數(默認值為50)。 | No |
prepStmtCacheSize | 如果允許預處理語(yǔ)句緩沖功能,應緩沖處理多少條預處理語(yǔ)句? | No |
prepStmtCacheSqlLimit | 如果允許預處理語(yǔ)句緩沖功能,驅動(dòng)程序將執行解析緩沖處理的最大SQL是什么? | No |
maintainTimeStats | 驅動(dòng)程序是否應維持各種內部定時(shí)器,以允許空閑時(shí)間計算,以及與服務(wù)器的連接失敗時(shí)允許提供更詳細的錯誤消息? 將該屬性設置為“假”,對于每次查詢(xún),至少能減少兩次對System.getCurrentTimeMillis()的調用。 | No |
blobSendChunkSize | 組塊,當通過(guò)ServerPreparedStatements發(fā)送BLOB/CLOB時(shí)使用。 | No |
cacheCallableStmts | 驅動(dòng)程序是否應對CallableStatements的解析過(guò)程執行緩沖處理。 | No |
cachePrepStmts | 驅動(dòng)程序是否應對客戶(hù)端預處理語(yǔ)句的PreparedStatements的解析過(guò)程執行緩沖處理,是否應檢查服務(wù)器端預處理語(yǔ)句的適用性以及服務(wù)器端預處理語(yǔ)句本身? | No |
cacheResultSetMetadata | 驅動(dòng)程序是否應對用于Statements和PreparedStatements的ResultSetMetaData執行緩沖處理? 要求 JDK-1.4+,真/假,默認為“假”。 | No |
cacheServerConfiguration | 驅動(dòng)程序是否應根據每條URL對“HOW VARIABLES”和“SHOW COLLATION”的結果執行緩沖處理? | No |
dontTrackOpenResources | JDBC規范要求驅動(dòng)程序自動(dòng)跟蹤和關(guān)閉資源,但是,如果你的應用程序不能明確調用作用在語(yǔ)句或結果集上的close(),可能會(huì )導致內存泄漏。將該屬性設置為“真”,可放寬該限制,對于某些應用程序,會(huì )提供更高的內存效率。 | No |
dynamicCalendars | 需要時(shí),驅動(dòng)程序是否應檢索默認日歷,或根據連接/會(huì )話(huà)對其進(jìn)行緩沖處理? | No |
elideSetAutoCommits | 如果使用MySQL-4.1或更高版本,當服務(wù)器的狀態(tài)與Connection.setAutoCommit(boolean)請求的狀態(tài)不匹配時(shí),驅動(dòng)程序是否僅應發(fā)出“set autocommit=n”查詢(xún)? | No |
holdResultsOpenOverStatementClose | 驅動(dòng)程序是否應按照JDBC規范的要求關(guān)閉Statement.close()上的結果集? | No |
locatorFetchBufferSize | 如果將“emulateLocators”配置為“真”,當獲取關(guān)于getBinaryInputStream的BLOB數據時(shí),緩沖區的大小應是多少? | No |
useFastIntParsing | 是否使用內部“String->Integer”轉換子程序來(lái)避免創(chuàng )建過(guò)多對象? | No |
useLocalSessionState | 驅動(dòng)程序是否應引用autocommit的內部值,以及由Connection.setAutoCommit()和Connection.setTransactionIsolation()設置的事務(wù)隔離,而不是查詢(xún)數據庫? | No |
useNewIO | 驅動(dòng)程序是否應將java.nio.* interfaces用于網(wǎng)絡(luò )通信(真/假),默認為“假”。 | No |
useReadAheadInput | 從服務(wù)器讀取數據時(shí),是否使用較新的、優(yōu)化的非成組緩沖輸入流? | No |
Debuging/Profiling(調試/仿形) | ||
logger | 實(shí)現了com.mysql.jdbc.log.Log的類(lèi)的名稱(chēng),com.mysql.jdbc.log.Log用于記錄消息(默認為“com.mysql.jdbc.log.StandardLogger”,它會(huì )將日志記錄到STDERR)。 | No |
profileSQL | 跟蹤查詢(xún)以及它們對已配制記錄器的執行/獲取次數(真/假),默認為“假”。 | No |
reportMetricsIntervalMillis | 如果允許“gatherPerfMetrics”,記錄它們的頻率是多少(單位毫秒)? | No |
maxQuerySizeToLog | 調試或仿形時(shí),控制將記錄的查詢(xún)的最大長(cháng)度/大小。 | No |
packetDebugBufferSize | 當“enablePacketDebug”為“真”時(shí),需要保留的最大信息包數目。 | No |
slowQueryThresholdMillis | 如果允許“l(fā)ogSlowQueries”,在將查詢(xún)記錄為“慢”之前的查詢(xún)時(shí)間是多少(毫秒)? | No |
useUsageAdvisor | 驅動(dòng)程序是否應發(fā)出“使用情況”警告,就DBC和MySQL Connector/J的恰當和高效使用給出建議(真/假,默認為“假”)? | No |
autoGenerateTestcaseScript | 驅動(dòng)程序是否應將正在執行的SQL(包括服務(wù)器端預處理語(yǔ)句)轉儲到STDERR? | No |
dumpQueriesOnException | 驅動(dòng)程序是否應將發(fā)送至服務(wù)器的查詢(xún)內容轉儲到SQLExceptions中? | No |
enablePacketDebug | 允許時(shí),將保留“packetDebugBufferSize”信息包的環(huán)形緩沖區,并當在驅動(dòng)程序代碼的關(guān)鍵區域拋出異常時(shí)進(jìn)行轉儲。 | No |
explainSlowQueries | 如果允許了“l(fā)ogSlowQueries”,驅動(dòng)程序是否應在服務(wù)器上自動(dòng)發(fā)出“EXPLAIN”,并以WARN級別將結果發(fā)送給配置好的日志? | No |
logSlowQueries | 是否要記錄時(shí)間長(cháng)于“slowQueryThresholdMillis”的查詢(xún)? | No |
traceProtocol | 是否應記錄跟蹤級網(wǎng)絡(luò )協(xié)議? | No |
Miscellaneous(其他) | ||
useUnicode | 處理字符串時(shí),驅動(dòng)程序是否應使用Unicode字符編碼? 僅應在驅動(dòng)程序無(wú)法確定字符集映射,或你正在強制驅動(dòng)程序使用MySQL不是固有支持的字符集時(shí)(如UTF-8)才應使用。真/假,默認為“真”。 | No |
characterEncoding | 如果“useUnicode”被設置為“真”,處理字符串時(shí),驅動(dòng)程序應使用什么字符編碼? 默認為“autodetect”。 | No |
characterSetResults | 字符集,用于通知服務(wù)器以何種字符集返回結果。 | No |
connectionCollation | 如果設置了它,將通知服務(wù)器通過(guò)“set collation_connection”使用該校對。 | No |
sessionVariables | 以逗號隔開(kāi)的“名稱(chēng)/值”對列表,當驅動(dòng)程序建立了連接后,以“SET SESSION ...”的方式將其發(fā)送給服務(wù)器。 | No |
allowNanAndInf | 驅動(dòng)程序是否應在PreparedStatement.setDouble()中允許NaN或+/- INF值? | No |
autoDeserialize | 驅動(dòng)程序是否應自動(dòng)檢測并串并轉換保存在BLOB字段中的對象? | No |
capitalizeTypeNames | 是否將DatabaseMetaData中的類(lèi)型名轉換為大寫(xiě)? 通常僅在使用WebObjects時(shí)有用,真/假。默認為“假”。 | No |
clobberStreamingResults | 這會(huì )使“流式”結果集被自動(dòng)關(guān)閉,如果在所有數據尚未從服務(wù)器中讀取完之前,執行了另一查詢(xún),正在從服務(wù)器流出的任何未完成數據均將丟失。 | No |
continueBatchOnError | 如果一條語(yǔ)句失敗,驅動(dòng)程序是否應繼續處理批命令? JDBC規范允許任何一種方式(默認為“真”)。 | No |
createDatabaseIfNotExist | 如果不存在,創(chuàng )建URL中給定的數據庫。假定用戶(hù)具有創(chuàng )建數據庫的權限。 | No |
emptyStringsConvertToZero | 驅動(dòng)程序是否應允許從空字符串字段到數值“0”的轉換? | No |
emulateLocators | N/A | No |
emulateUnsupportedPstmts | 驅動(dòng)程序是否應檢測不被服務(wù)器支持的預處理語(yǔ)句,并用客戶(hù)端模擬版替換它們? | No |
ignoreNonTxTables | 是否忽略關(guān)于回退的非事務(wù)表? 默認值為“假”。 | No |
jdbcCompliantTruncation | 連接到支持告警的服務(wù)器時(shí)(MySQL 4.1.0和更高版本),當按照JDBC的要求截短數據時(shí),驅動(dòng)程序是否應拋出java.sql.DataTruncation異常? | No |
maxRows | 返回的最大行數(0,默認值表示返回所有行)。 | No |
noDatetimeStringSync | 不保證ResultSet.getDatetimeType().toString().equals(ResultSet.getString()。 | No |
nullCatalogMeansCurrent | 當DatabaseMetadataMethods請求“目錄”參數時(shí),值“Null”是否意味著(zhù)使用當前目錄? 它不兼容JDBC,但符合驅動(dòng)程序早期版本的傳統行為。 | No |
nullNamePatternMatchesAll | 接受*pattern參數的DatabaseMetaData方法是否應將null按對待“%”的相同方式處理(不兼容JDBC,但驅動(dòng)程序的早期版本能接受與規范的這類(lèi)偏離)。 | No |
pedantic | 嚴格遵守JDBC規范。 | No |
relaxAutoCommit | 如果驅動(dòng)程序所連接的MySQL服務(wù)器的版本不支持事務(wù),仍允許調用commit()、rollback()和setAutoCommit()?真/假,默認為“假”。 | No |
retainStatementAfterResultSetClose | 調用ResultSet.close()后,驅動(dòng)程序是否應將語(yǔ)句引用保存在結果集中? 在JDBC-4.0后,與JDBC不兼容。 | No |
rollbackOnPooledClose | 當連接池中的邏輯連接關(guān)閉時(shí),驅動(dòng)程序是否應發(fā)出rollback()? | No |
runningCTS13 | 允許在Sun與JDBC兼容的testsuite 1.3版中處理缺陷。 | No |
serverTimezone | 覆蓋時(shí)區的檢測/映射。當服務(wù)器的時(shí)區為映射到Java時(shí)區時(shí)使用。 | No |
strictFloatingPoint | 僅在兼容性測試的早期版本中使用。 | No |
strictUpdates | 驅動(dòng)程序是否應對可更新結果集進(jìn)行嚴格檢查(選擇所有的主鍵)?真/假,默認為“真”。 | No |
tinyInt1isBit | 驅動(dòng)程序是否應將數據類(lèi)型TINYINT(1)當作BIT類(lèi)型對待?創(chuàng )建表時(shí),服務(wù)器會(huì )執行BIT -> TINYINT(1)操作。 | No |
transformedBitIsBoolean | 如果驅動(dòng)程序將TINYINT(1)轉換為不同的類(lèi)型,為了與MySQL-5.0兼容,驅動(dòng)程序是否應使用BOOLEAN取代BIT?這是因為MySQL-5.0具有BIT類(lèi)型。 | No |
ultraDevHack | 由于UltraDev已損壞,并為所有語(yǔ)句發(fā)出了prepareCall(),需要時(shí),是否要為prepareCall()創(chuàng )建PreparedStatements? 真/假,默認值為“假”。 | No |
useHostsInPrivileges | 在DatabaseMetaData.getColumn/TablePrivileges()中為用戶(hù)添加“@hostname”。真/假,默認為“真”。 | No |
useOldUTF8Behavior | 與4.0和更早版本的服務(wù)器進(jìn)行通信時(shí),使用UTF-8。 | No |
useOnlyServerErrorMessages | 對服務(wù)器返回的錯誤消息,不事先設定“標準的”SQLState錯誤消息。 | No |
useServerPrepStmts | 如果服務(wù)器支持,是否使用服務(wù)器端預處理語(yǔ)句? 默認值為“真”。 | No |
useSqlStateCodes | 使用SQL標準狀態(tài)碼取代“傳統的”X/Open/SQL狀態(tài)碼,真/假,默認為“真”。 | No |
useStreamLengthsInPrepStmts | 是否采用PreparedStatement/ResultSet.setXXXStream()方法調用中的流長(cháng)度參數?真/假,默認為“真”。 | No |
useTimezone | 是否在客戶(hù)端和服務(wù)器時(shí)區間轉換時(shí)間/日期類(lèi)型(真/假,默認為“假”)? | No |
useUnbufferedInput | 不使用BufferedInputStream來(lái)從服務(wù)器讀取數據。 | No |
yearIsDateType | JDBC驅動(dòng)程序是否應將MySQL類(lèi)型“YEAR”當作java.sql.Date或SHORT對待? | No |
zeroDateTimeBehavior | 當驅動(dòng)程序遇到全由0組成的DATETIME值時(shí),應出現什么?MySQL使用它來(lái)表示無(wú)效日期。有效值是“exception”、“round”和“convertToNull”。 | No |

