1. Sql server 2000 數據庫本身規定了其數據庫連接URL 的一般格式,如下:
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
之間無空格,其中:
· jdbc:sqlserver://(必需)稱為子協議,且為常數。
· serverName(可選)是要連接到的服務器的地址。它可以是 DNS 或 IP 地址,也可以是本地計算機地址 localhost 或 127.0.0.1。如果未在連接 URL 中指定服務器名稱,則必須在屬性集中指定。
· instanceName (可選)是 serverName 上要連接到的實例。如果未指定,則會連接到默認實例(master)。
· portNumber(可選)是 serverName 上要連接到的端口。默認值為 1433。如果使用默認端口,則無需在 URL 中指定端口及其前面的“:”。
· property(可選)是一個或多個選項連接屬性。有關詳細信息,請參閱設置連接屬性。可指定該列表中的任何屬性。屬性只能用分號(“;”)分隔,且不允許重復。
2. 連接實例寫法有:
A. 使用用戶名和密碼連接到本地計算機上的默認數據庫:
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(應該是安裝時自帶的數據庫)
當URL中databaseName 前誤加了一“_”空格后,如下:
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
一種寫法,且中間不能有空格等
了解Java報表工具就從這里開始
posted on 2011-12-12 10:30
season 閱讀(181)
評論(0) 編輯 收藏 所屬分類:
Java報表—技術知識