您可以使用各種方法指定連接字串屬性:
當您使用 DriverManager 類別進行連接時,連接 URL 中的屬性為 name=value。
作為 DriverManager 類別內 Connect 方法之 Properties 參數中的 name=value 屬性。
作為驅動程式資料來源的適當 setter 方法中的值。例如:
datasource.setServerName(value) datasource.setDatabaseName(value)
屬性名稱需區分大小寫,而重複的屬性名稱將以下列順序解析:
API 引數 (例如使用者及密碼)
屬性集合
連接字串內的最後一個執行個體
此外,屬性名稱可允許未知的值,JDBC 驅動程式並不會針對屬性值的大小寫進行驗證。
容許同義字並會依序解決,如同是重複的屬性名稱一般。
下表列出 JDBC 驅動程式目前所有可用的連接字串屬性。
| 屬性 | 類型 | 預設值 | 描述 |
|---|---|---|---|
applicationName |
String [<=128 char] |
null |
應用程式名稱,如果未提供名稱,則為 "Microsoft SQL Server 2005 JDBC Driver"。用以識別各種 SQL Server 設定檔作業與記錄工具中的特定應用程式。 |
databaseName, database |
String [<=128 char] |
null |
要連接到的資料庫名稱。如果沒有指定,將連接到預設資料庫。 |
disableStatementPooling |
boolean ["true"|"false"] |
true |
目前僅支援 "true" 值。如果設定為 "false",則會發生例外狀況。 |
加密 |
boolean ["true"|"false"] |
false |
如果伺服器有安裝憑證,設定為 "true" 以指定 SQL Server 將安全通訊端層 (SSL) 加密用於用戶端和伺服器之間的所有資料。預設值為 false。 |
failoverPartner |
String |
null |
用於資料庫鏡像組態的容錯移轉伺服器名稱。初始連接到主體伺服器若失敗,將使用此屬性;在建立初始連接之後,將忽略此屬性。必須與 databaseName 屬性一起使用。 |
hostNameInCertificate |
String |
null |
用於驗證 SQL Server SSL 憑證的主機名稱。 如果未指定 hostNameInCertificate 屬性,或設定為 null,Microsoft SQL Server 2005 JDBC Driver 將會在連接 URL 上使用 serverName 屬性值,當做驗證 SQL Server SSL 憑證的主機名稱。 注意 此屬性與 encrypt 屬性和 trustServerCertificate 屬性搭配使用。當 (並僅有在) encrypt 屬性設定為 "true",而且 trustServerCertificate 設定為 "false" 時,這個屬性會影響憑證驗證。 |
instanceName |
String [<=128 char] |
null |
要連接到的 SQL Server 2000 或 SQL Server 2005 執行個體名稱。如果未指定,將會連接到預設執行個體。如果已指定 instanceName 與通訊埠,請參閱通訊埠的注意事項。 |
integratedSecurity |
boolean ["true"|"false"] |
false |
設為 "true",以指出 SQL Server 將使用 Windows 認證來驗證應用程式的使用者。若為 "true",JDBC 驅動程式會搜尋本機電腦認證快取,以取得電腦上已提供的認證或網路登入。若為 "false",必須提供使用者名稱及密碼。 注意 只在 Microsoft Windows 作業系統上才支援此連接屬性。 |
lastUpdateCount |
boolean ["true"|"false"] |
true |
"true" 值只會從傳至伺服器的 SQL 陳述式傳回上次更新計數,而且它可以用在單一 SELECT、INSERT 或 DELETE 陳述式,以忽略伺服器觸發程序所導致的其他更新計數。將此屬性設為 "false" 會導致傳回所有更新計數,包括伺服器觸發程序所傳回的更新計數。 注意 此屬性僅適用於搭配 executeUpdate 方法使用時。 |
lockTimeout |
int |
-1 |
等候資料庫報告鎖定逾時的毫秒數。預設的行為是無限期等待。如果已指定,則此值為連接上所有陳述式的預設值。請注意, |
loginTimeout |
int [0..65535] |
0 |
驅動程式應等待失敗連接逾時的秒數。值為 0 表示沒有逾時值。非零值為驅動程式應等待失敗連接之逾時的秒數。 |
packetSize |
int [-1| 0 | 512..32767] |
8000 |
用來與 SQL Server 通訊的網路封包大小 (以位元組指定)。-1 這個值表示使用伺服器的預設封包大小。0 這個值表示使用最大值,也就是 32767。如果將此屬性設為可接受範圍以外的值,將發生例外狀況。 重要 啟用加密 (encrypt=true) 時,不建議使用 packetSize 屬性。否則,驅動程式可能會引發連接錯誤。如需詳細資訊,請參閱 SQLServerDataSource 類別的 setPacketSize 方法。 |
password |
String [<=128 char] |
null |
資料庫密碼。 |
portNumber, port |
int [0..65535] |
1433 |
SQL Server 正在接聽的通訊埠。如果已在連接字串中指定通訊埠號碼,就不需要對 sqlbrowser 進行要求。同時指定 port 和 instanceName 時,會連接至指定的通訊埠。然而,會驗證 instanceName,如果它不符合通訊埠,將發生錯誤。 重要 我們建議一定要指定通訊埠號碼,因為這比使用 sqlbrowser 更安全。 |
responseBuffering |
String ["full"|"adaptive"] |
full |
如果此屬性設定為 "full",執行陳述式時,就會從伺服器讀取整個結果集。Microsoft SQL Server 2005 JDBC Driver 1.2 版的預設模式為 “full”,並提供 Microsoft SQL Server 2005 JDBC Driver 1.0 和 1.1 版的回溯相容性。當此屬性設定為 "adaptive" 時,需要時,會緩衝處理可能的資料下限。Microsoft SQL Server 2005 JDBC Driver 1.2 版的慣用模式為 "adaptive"。 |
selectMethod |
String ["direct"|"cursor"] |
direct |
如果將此屬性設定為 "cursor",便會為每個在 TYPE_FORWARD_ONLY 及 CONCUR_READ_ONLY 資料指標之連接上建立的查詢,建立資料庫資料指標。通常只有當應用程式所產生的結果集過於龐大而用戶端記憶體無法全數包含時,才需要此屬性。此屬性設定為 "cursor" 時,用戶端記憶體中只會保留有限數量的結果集資料列。預設的行為是用戶端記憶體中保留了所有結果集資料列。當應用程式處理所有資料列時,此行為提供最快的效能。 |
sendStringParametersAsUnicode |
boolean ["true"|"false"] |
true |
設定為 "false" 以指定字元資料的準備參數是以 ASCII 傳送,而非 Unicode。此參數可增進字元資料索引查閱在非 Unicode、SQL Server 2000 或 SQL Server 2005 資料表上的效能。例如,您可直接比較 ASCII 資料列索引鍵,不會造成 Unicode 轉換上的處理負擔。如需詳細資訊,請參閱 Microsoft 討論區,網址為:support.microsoft.com/kb/271566。 |
serverName, server |
String |
null |
執行 SQL Server 的電腦。 |
userName, user |
String [<=128 char] |
null |
資料庫使用者。 |
trustServerCertificate |
boolean ["true"|"false"] |
false |
設定為 "true" 以指定 Microsoft SQL Server 2005 JDBC Driver 將不會驗證 SQL Server SSL 憑證。 若為 "true",當通訊層使用 SSL 加密時,會自動信任 SQL Server SSL 憑證。 若為 "false",Microsoft SQL Server 2005 JDBC Driver 將會驗證伺服器 SSL 憑證。如果伺服器憑證驗證失敗,驅動程式將引發錯誤,並中止連接。預設值為 "false"。 注意 此屬性會與 encrypt 屬性一起使用。當 (並僅有在) encrypt 屬性設定為 "true" 時,這個屬性僅會影響伺服器 SSL 憑證驗證。 |
trustStore |
String |
null |
trustStore 憑證檔案的路徑 (包括檔案名稱)。trustStore 檔案包含用戶端所信任之憑證的清單。 未指定此屬性或將其設定為 null 時,驅動程式將會依賴信任管理員 Factory 的查閱規則,決定要使用的憑證存放區。 預設的 SunX509 TrustManagerFactory 會嘗試以下列的搜尋順序,找出信任的資料:
如需詳細資訊,請參閱 Sun Microsystems 網站上的 SUNX509 TrustManager 介面文件。 注意 當 (並僅有在) encrypt 屬性設定為 "true",而且 trustServerCertificate 屬性設定為 "false" 時,這個屬性才會影響憑證 trustStore 查閱。 |
trustStorePassword |
String |
null |
用於檢查 trustStore 資料完整性的密碼。 如果有設定 trustStore 屬性,但是未設定 trustStorePassword 屬性,就不會檢查 trustStore 的完整性。 當 trustStore 和 trustStorePassword 屬性都未指定時,驅動程式將會使用 JVM 系統屬性 "javax.net.ssl.trustStore" 和 "javax.net.ssl.trustStorePassword"。如果未指定 "javax.net.ssl.trustStorePassword" 系統屬性,就不會檢查 trustStore 的完整性。 如果未設定 trustStore 屬性,但是有設定 trustStorePassword 屬性,JDBC 驅動程式將會使用 "javax.net.ssl.trustStore" 指定的檔案做為信任存放區,並使用指定的 trustStorePassword,檢查信任存放區的完整性。當用戶端應用程式不要在 JVM 系統屬性中儲存密碼時,可能需要這個動作。 注意 當 (並僅有在) encrypt 屬性設定為 "true",而且 trustServerCertificate 屬性設定為 "false" 時,trustStorePassword 屬性才會影響憑證 trustStore 查閱。 |
workstationID |
String [<=128 char] |
<empty string> |
工作站識別碼。用以識別各種 SQL Server 設定檔作業與記錄工具中的特定工作站。若未指定,則使用 <empty string>。 |
xopenStates |
boolean ["true"|"false"] |
false |
設定為 "true",以指定驅動程式傳回例外狀況的 XOPEN 相容狀態碼。預設為傳回 SQL 99 狀態碼。 |