Sql server 2000 鏈接測試

1. Sql server 2000 數據庫自己規定了其數據庫鏈接URL 的通常格式,以下:sql

jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]數據庫

之間無空格,其中:服務器

·        jdbc:sqlserver://(必需)稱爲子協議,且爲常數。app

·        serverName(可選)是要鏈接到的服務器的地址。它能夠是 DNS IP 地址,也能夠是本地計算機地址 localhost 127.0.0.1。若是未在鏈接 URL 中指定服務器名稱,則必須在屬性集中指定。sqlserver

·        instanceName (可選)是 serverName 上要鏈接到的實例。若是未指定,則會鏈接到默認實例(master)。spa

·        portNumber可選)是 serverName 上要鏈接到的端口。默認值爲 1433。若是使用默認端口,則無需在 URL 中指定端口及其前面的「:」設計

·        property(可選)是一個或多個選項鍊接屬性。有關詳細信息,請參閱設置鏈接屬性。可指定該列表中的任何屬性。屬性只能用分號(「;」)分隔,且不容許重複。server

2.  鏈接實例寫法有:ip

A.    使用用戶名和密碼鏈接到本地計算機上的默認數據庫:ci

jdbc:sqlserver://localhost;user=MyUserName;password=*****;

B.       使用集成身份驗證鏈接到本地計算機上的默認數據庫:

jdbc:sqlserver://localhost;integratedSecurity=true;

C.    鏈接到遠程服務器上的指定數據庫:

jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true;

D.      鏈接到遠程服務器上的默認端口:

jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks;integratedSecurity=true;

 

 

 

E.    經過指定自定義應用程序名稱進行鏈接:

jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true;applicationName=MyApp;

3 .以咱們設計器中的URL寫法爲例詳細說明:

jdbc:microsoft:sqlserver://192.168.100.112:1433;databaseName=test

其中

(1).  databaseName=test爲鏈接屬性,屬性值只用「;」分割,咱們只用了一個,若有多個屬性即可寫成:

;databaseName=test;user=MyUserName;password=*****;

所以在test後加不加「;」 鏈接效果同樣,即URL寫成

jdbc:microsoft:sqlserver://192.168.100.112:1433;databaseName=test

jdbc:microsoft:sqlserver://192.168.100.112:1433;databaseName=test

都能正確讀取test數據庫

(2).Sql server 2000 數據庫默認的端口爲1433,默認的數據庫實master(應該是安裝時自帶的數據庫)

  URLdatabaseName 前誤加了一「_」空格後,以下:

jdbc:microsoft:sqlserver://192.168.100.112:1433; databaseName=test

此時獲取URL時自動判斷空格時URL結束,即得到的實際URL爲:

jdbc:microsoft:sqlserver://192.168.100.112:1433;

 而此URL鏈接的爲sql server 2000 默認的數據庫 master,因此讀取的就是數據庫master中的表

 

 

 

結論:

在寫sql server 2000的數據庫URL時,除其自己已有的特殊字符外,要添加其餘特殊字符必須進行轉義,將這些字符包含在大括號中, JDBC 驅動程序將支持對其進行轉義。例如,{;} 將轉義分號。

轉義的值能夠包含特殊字符(特別是「=」「;」「[]」和空格),但不能包含大括號。應將必須進行轉義且包含大括號的值添加到屬性集中。

方案:

將咱們所用的數據庫改變爲默認數據庫是一種方法,但通常存在多個可用的數據庫,因此除sqlserver 自己規定的URL格式外,在咱們的程序中最好進行限制,只使用

jdbc:microsoft:sqlserver://ip:port;databaseName=Databasename

一種寫法,且中間不能有空格等