日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

[转摘] JSP连接SQL SERVER问题总结

發布時間:2025/7/14 javascript 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转摘] JSP连接SQL SERVER问题总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
由于系統需求,最近在開發過程中將系統從原來的MySQL轉移到SQL?2000下,其中遇到了諸多問題,花費了我不少時間。現在把我的經驗拿出來告訴大家,好讓大家少走彎路,節約時間。

首先是SQL?2000數據庫的安裝問題,在此我主要講些關于SQL?2000的版本與操作系統的兼容性問題:SQL?2000總共有7個不同版本,適應不同等級用戶的需求。

我試了一下,在XP系統下只有“個人開發版”能正常安裝而不出現錯誤,所以大家在安裝時要注意,具體安裝時的配置參照相關說明就可以了。

下面說明如何連接到SQL?2000數據庫,首先當然是要下載JDBC驅動程序,最好去微軟官方網站下載,然后將下載到的三個JAR包放入你的WEB應用的WEB-INF/lib/下。接下來編寫程序進行測試:


/***********************************************
?/*
?/*DBTest.java
?/*
?/*******************************************?*/
?
?import?java.sql.*;
?
?public?class?DBTest
?{
??
??Connection?con;
??Statement??sta;
??ResultSet??rs;
??
??String?driver;
??String?url;
??String?user;
??String?pwd;
??public?DBTest()
??{
??????driver?=?"com.microsoft.jdbc.
???sqlserver.SQLServerDriver";;
??????url????=?"jdbc:microsoft:sqlserver:
???//localhost:1433;DatabaseName?=test";
??????//test為數據庫名
??????user???=?"sa";
??????pwd????=?"sa";
??????//請更改為你相應的用戶和密碼
??????init();
??}
??public?void?init()
??{
???try{
????Class.forName(driver);
????System.out.println("driver?is?ok");
????con?=?DriverManager.
?getConnection(url,user,pwd);
????System.out.println("conection?is?ok");
???????sta?=?con.createStatement();
???????rs??=?sta.executeQuery
????("select?*?from?room");
???????while(rs.next())
????????System.out.println
??(rs.getInt("roomNum"));?
???}catch(Exception?e)
????{
?????e.printStackTrace();
????}
??}
??
??public?static?void?main(String?args[])
??//自己替換[]
??{
???new?DBTest();
??}
?}

按道理講,上邊這段代碼應該沒錯,可首先我們來看一下,如果sqlser服務器沒有升級到sp3(在使用jdbc時,如果系統是xp或者2003務必要把sqlserver?升級到sp3,往上到處都有下的),我們看看運行結果:?

driver?is?ok
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.<init>(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.<init>(DbTest.java:25)
????????at?DbTest.main(DbTest.java:46)
Press?any?key?to?continue...

出現上邊錯誤的主要原因是默認的數據庫服務器端口?1433沒有打開,無法直接連接。如果升級到sp3則這個問題可以結決,我們再來看看升級之后,程序運行的結果:?

driver?is?ok
conection?is?ok
java.sql.SQLException:?
[Microsoft][SQLServer?2000?Driver?for?JDBC]
[SQLServer]對
象名?’room’?無效。
????????at?com.microsoft.jdbc.base.
??BaseExceptions.createException(Unknown?Source
)
????????at?com.microsoft.jdbc.base.
??BaseExceptions.getException(Unknown?Source)
????????at?com.microsoft.jdbc.sqlserver.tds.
??TDSRequest.processErrorToken(Unknown
?Source)
????????at?com.microsoft.jdbc.sqlserver.tds.
??TDSRequest.processReplyToken(Unknown
?Source)
????????at?com.microsoft.jdbc.sqlserver.tds.
??TDSExecuteRequest.processReplyToken(
Unknown?Source)
????????at?com.microsoft.jdbc.sqlserver.tds.
??TDSRequest.processReply(Unknown?Sour
ce)
????????at?com.microsoft.jdbc.sqlserver.
??SQLServerImplStatement.getNextResultType
(Unknown?Source)
????????at?com.microsoft.jdbc.base.
??BaseStatement.commonTransitionToState
??(Unknown
?Source)
????????at?com.microsoft.jdbc.base.
??BaseStatement.postImplExecu
te(Unknown?Source)

????????at?com.microsoft.jdbc.base.
??BaseStatement.commonExecute(Unknown?Source)
????????at?com.microsoft.jdbc.base.
??BaseStatement.executeQueryInternal
??(Unknown?So
urce)
????????at?com.microsoft.jdbc.base.
??BaseStatement.executeQuery(Unknown?Source)
????????at?DbTest.init(DbTest.java:35)
????????at?DbTest.<init>(DbTest.java:25)
????????at?DbTest.main(DbTest.java:46)
Press?any?key?to?continue...

在這兒,用戶已經登陸上去,但是卻不能訪問里邊的數據表,出現這個問題的原因在于sa用戶為系統用戶,它雖然能夠登陸數據庫,但是test數據庫里邊卻沒有這個用戶的訪問權限,所以,我們現在為這個數據庫重新建立一個用戶share,建立過程如下:?

在test數據庫中選重用戶?---〉新建用戶?--?〉名稱選擇(這一步中有兩個關鍵點:身份驗證選sql身份驗證,默認數據庫選test)-〉建立新教色share?,此時更改程序,將用戶登陸名和密碼修改一下,重新運行程序:?

driver?is?ok
conection?is?ok
1001
1002
1003
1004
1005
1006
Press?any?key?to?continue...

這次順利通過測試?

其實這些小問題花了我一個晚上才解決,真是浪費時間,所以寫下來希望能使遇到類似問題的朋友不要重蹈覆轍,在此提醒大家遇到問題時多上網查查,多在論壇里問問,這樣你學到的會更多,更節省時間,更有效率。?

總結:Sqlserve?和JDBC?的融合問題,關鍵涉及到sp3補丁(端口開放)還有用戶問題,解決這兩個問題之后,剩余的便是Sqlserver?操作問題了,還有一點在遠程操作的時候,要把Sqlserver?組設置一下,在安全性里邊亦將身份驗證更改為Sqlserve?驗證即可。?

轉載于:https://www.cnblogs.com/fhj2050/archive/2007/02/06/641936.html

總結

以上是生活随笔為你收集整理的[转摘] JSP连接SQL SERVER问题总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。