淺談如何用JDBC連接SQL Server 2000
用JDBC連接SQL Server 2000問題總結(jié):
1、安裝SQL Server2 000
安裝SQL Server 2000補(bǔ)丁SP3
安裝SQL Server 2000 for SP3的驅(qū)動程序
(先打補(bǔ)丁sp3,再安裝針對sp3的驅(qū)動程序,安裝補(bǔ)丁時(shí),為保險(xiǎn)起見,兩種驗(yàn)證方式的都裝一遍,我是先裝windows驗(yàn)證,再裝SQL Server驗(yàn)證的)
打開JBuilder
2、tools_configure_libraries new一個(gè)sqlserver,在library paths中加入驅(qū)動程序安裝目錄下lib文件夾中的三個(gè)jar文件
3、project——default projectproperties在paths頁下的required libaraes頁中加入第1步new的sqlserver
4、tools——enterprise setup(jb9)
enterprise——enterprise setup(jb2005)
在彈出的對話框的database driver頁中,添加第1步new的sqlserver,確定
5、重啟jbuilder
6、tools——database pilot
在彈出的窗口的菜單中選view——option
在彈出的對話框中選driver頁面,點(diǎn)add
在driver class文本框中輸入com.microsoft.jdbc.sqlserver.SQLServerDriver,確定
7、設(shè)置名為com.microsoft.jdbc.sqlserver.SQLServerDriver的driver class
Driver是com.microsoft.jdbc.sqlserver.SQLServerDriver
URL是jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=數(shù)據(jù)庫名(如:cardSystem)
用JDBC連接SQL Server 2000常見問題分析-1:
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis
- hing socket.
- at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source
- )
- at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
- at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
- at com.microsoft.jdbc.sqlserver.tds.TDSConnection.(Unknown Source)
- at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou
- rce)
- at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S
- ource)
- at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
- at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
- at java.sql.DriverManager.getConnection(DriverManager.java:523)
- at java.sql.DriverManager.getConnection(DriverManager.java:171)
- at DbTest.init(DbTest.java:32)
- at DbTest.(DbTest.java:25)
- at DbTest.main(DbTest.java:46)
- Press any key to continue...
出現(xiàn)上邊錯(cuò)誤的主要原因是默認(rèn)的數(shù)據(jù)庫服務(wù)器端口 1433沒有打開,無法直接連接,如果成功升級到sp3則這個(gè)問題可以結(jié)決。還有就是數(shù)據(jù)庫一定要用Windows和數(shù)據(jù)庫混合身分驗(yàn)證方式。
用JDBC連接SQL Server 2000常見問題分析-2:
在安裝安裝SQLServer2000 for SP3的驅(qū)動程序時(shí),彈出對話框提示:"以前的某個(gè)程序安裝已在安裝計(jì)算機(jī)上創(chuàng)建掛起的文件操作"
原因:以前裝過sql server,后來刪掉?,F(xiàn)在重裝,卻出現(xiàn)“以前的某個(gè)程序安裝已在安裝計(jì)算機(jī)上創(chuàng)建掛起的文件操作。運(yùn)行安裝程序之前必須重新啟動計(jì)算機(jī)”的錯(cuò)誤。無法進(jìn)行下去。
解決步驟是:
1)添加/刪除程序中徹底刪除sql server。
2)將沒有刪除的sql server目錄也刪除掉。
3)打開注冊表編輯器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations項(xiàng)目,并刪除它。這樣就可以清除安裝暫掛項(xiàng)目。
4)刪除注冊表中跟sql server相關(guān)的鍵。
其實(shí)估計(jì)只要做第3步就可以搞定,這樣就可以清除安裝暫掛項(xiàng)目。自己是先走了1,2,4,最后 做了3才搞定。所以估計(jì)3才是最關(guān)鍵的。
采用sql server driver 來實(shí)現(xiàn)對sqlserver數(shù)據(jù)庫的操作時(shí),一般代碼如下:
- Connection con = null;
- PrepareStatement pstmt = null;
- try{
- Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
- con = DriverManager.getConnection("jdbc:microsoft:sqlserver//localhost:1433;databasename=pubs","sa","sa");
- pstmt = con.preparedStatment("insert ....");
- //......
- }catch(ClassNotFoundException e){
- e.printStackTrace();
- }catch(SQLException e){
- e.printStackTrace();
- }finally{
- try{
- if (pstmt != null) pstmt.close();
- if (con != null) con.close();
- }catch(Exception e){
- e.printStackTrace();
- }
- }
如果是SQLSERVER2005,則改成:
- Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
- con = DriverManager.getConnection("jdbc:sqlserver//localhost:1433;databasename=pubs","sa","sa");
- > java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
估計(jì)是你連接sql server的端口設(shè)置有問題,你可以查看一下端口,看看是不是1433。
解決:出現(xiàn)[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket
凡是出現(xiàn)這種錯(cuò)誤的,都可以說不是程序本身的錯(cuò)誤,一般人都會寫jdbc:microsoft:sqlserver://localhost:1433;這樣寫是對的,很多是由于端口的問題,請查看一下端口,如下:
1)打開"企業(yè)管理器",打開控制臺根目錄>SQL Server 組>數(shù)據(jù)庫
2)在相應(yīng)"數(shù)據(jù)庫"上單擊右鍵,選擇"屬性"
3)選擇"常規(guī)"選項(xiàng)卡,點(diǎn)擊"網(wǎng)絡(luò)配置",如啟用的協(xié)議中無"TCP/IP協(xié)議"將其加入
4)選擇"TCP/IP協(xié)議",點(diǎn)擊"屬性",檢查其端口號是否為1433
5)如端口號為1433將其修改為其它端口號,修改jdbc連接語句,將端口號同樣改為新啟用的端口號,如jdbc:microsoft:sqlserver://server_name:1400(假設(shè)新端口號為 1400)
【編輯推薦】