六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

JSP連接SQL SERVER問題總結

[摘要]由于系統需求,最近在開發過程中將系統從原來的MySQL轉移到SQL 2000下,其中遇到了諸多問題,花費了我不少時間。現在把我的經驗拿出來告訴大家,好讓大家少走彎路,節約時間。 首先是SQL 2000數據庫的安裝問題,在此我主要講些關于SQL 2000的版本與操作系統的兼容性問題:SQL 2000...
由于系統需求,最近在開發過程中將系統從原來的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 驗證即可。 



主站蜘蛛池模板: 日韩一区二区三区四区不卡 | 婷婷午夜影院 | 亚洲免费区| 五月综合激情久久婷婷 | 亚洲国产欧美在线成人aaaa | 天天曰夜夜曰 | 午夜影院在线免费观看 | 亚洲mv| 特黄一级黄色片 | 青娱极品盛宴国产一区 | 人人干狠狠操 | 午夜三级理论在线观看视频 | 亚洲欧洲一区二区三区在线 | 日本免费一区二区三区看片 | 青草精品视频 | 色非网| 无声在线完整版免费观看 | 青青草97国产精品免费观看 | 中文字幕第一页在线 | 色婷婷激情综合 | 神兵小将第一部 | 日本韩国理论片大全在线 | 亚洲高清视频在线 | 日本亚洲国产 | 亚洲成人福利在线 | 日韩亚洲第一页 | 武则天一级淫片免费看 | 日韩黄色三级 | 欧洲亚洲综合一区二区三区 | 中文字幕在线观看第一页 | 日本最新免费不卡二区在线 | 亚洲福利精品一区二区三区 | 天天干天天干天天干天天干天天干 | 天堂bt资源在线官网 | 天天看天天摸天天操 | 全黄一级片 | 亚洲成 人a影院青久在线观看 | 在线观看亚洲视频 | 欧美亚洲春色系列 | 在线播放亚洲精品富二代91 | 天天干 夜夜操 |