熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

JSP中連接SQL 2000數據庫的問題總結

2013-11-23 19:10:30  來源: Java核心技術 

  由於系統需求最近在開發過程中將系統從原來的MySQL轉移到SQL 其中遇到了諸多問題花費了我不少時間現在把我的經驗拿出來告訴大家好讓大家少走彎路節約時間
  
  首先是SQL 數據庫的安裝問題在此我主要講些關於SQL 的版本與操作系統的兼容性問題SQL 總共有個不同版本適應不同等級用戶的需求我試了一下在XP系統下只有個人開發版能正常安裝而不出現錯誤所以大家在安裝時要注意具體安裝時的配置參照相關說明就可以了
  
  下面說明如何連接到SQL 數據庫首先當然是要下載JDBC驅動程序最好去微軟官方網站下載然後將下載到的三個JAR包放入你的WEB應用的WEBINF/lib/下接下來編寫程序進行測試
  
  /***********************************************
  /*
  /*DBTestjava
  /*
  /******************************************* */
  
  import javasql*;
  
  public class DBTest {
  
  Connection con;
  Statement sta;
  ResultSet rs;
  
  String driver;
  String url;
  String user;
  String pwd;
  public DBTest()
  {
  driver = commicrosoftjdbcsqlserverSQLServerDriver;;
  url  = jdbc:microsoft:sqlserver://localhost:;DatabaseName =test;
  //test為數據庫名
  user  = sa;
  pwd  = sa;
  //請更改為你相應的用戶和密碼
  init();
  }
  public void init()
  {
  try{
  ClassforName(driver);
  Systemoutprintln(driver is ok);
  con = DriverManagergetConnection(urluserpwd);
  Systemoutprintln(conection is ok);
  sta = concreateStatement();
  rs = staexecuteQuery(select * from room);
  while(rsnext())
  Systemoutprintln(rsgetInt(roomNum));
  }catch(Exception e)
  {
  eprintStackTrace();
  }
  }
  
  public static void main(String args[])//自己替換[]
  {
  new DBTest();
  }
  }
  
  按道理講上邊這段代碼應該沒錯可首先我們來看一下如果sqlser服務器沒有升級到sp(在使用jdbc時如果系統是xp或者務必要把sqlserver 升級到sp往上到處都有下的)我們看看運行結果
  
  driver is ok
  javasqlSQLException: [Microsoft][SQLServer Driver for JDBC]Error establis
  hing socket
  at commicrosoftjdbcbaseBaseExceptionscreateException(Unknown Source)
  at commicrosoftjdbcbaseBaseExceptionsgetException(Unknown Source)
  at commicrosoftjdbcbaseBaseExceptionsgetException(Unknown Source)
  at commicrosoftjdbcsqlservertdsTDSConnection<init>(Unknown Source)
  
  at commicrosoftjdbcsqlserverSQLServerImplConnectionopen(Unknown Source)
  at commicrosoftjdbcbaseBaseConnectiongetNewImplConnection(Unknown Source)
  at commicrosoftjdbcbaseBaseConnectionopen(Unknown Source)
  at commicrosoftjdbcnnect(Unknown Source)
  at javasqlDriverManagergetConnection(DriverManagerjava:)
  at javasqlDriverManagergetConnection(DriverManagerjava:)
  at DbTestinit(DbTestjava:)
  at DbTest<init>(DbTestjava:)
  at DbTestmain(DbTestjava:)
  Press any key to continue
  
  出現上邊錯誤的主要原因是默認的數據庫服務器端口 沒有打開無法直接連接
  
  如果升級到sp則這個問題可以結決我們再來看看升級之後程序運行的結果
  
  driver is ok
  conection is ok
  javasqlSQLException: [Microsoft][SQLServer Driver for JDBC][SQLServer]對象名 room 無效
  at commicrosoftjdbcbaseBaseExceptionscreateException(Unknown Source)
  at commicrosoftjdbcbaseBaseExceptionsgetException(Unknown Source)
  at commicrosoftjdbcsqlservertdsTDSRequestprocessErrorToken(UnknownSource)
  at commicrosoftjdbcsqlservertdsTDSRequestprocessReplyToken(UnknownSource)
  at commicrosoftjdbcsqlservertdsTDSExecuteRequestprocessReplyToken(Unknown Source)
  at commicrosoftjdbcsqlservertdsTDSRequestprocessReply(Unknown Source)
  at commicrosoftjdbcsqlserverSQLServerImplStatementgetNextResultType(Unknown Source)
  at commicrosoftjdbcbamonTransitionToState(UnknownSource)
  at commicrosoftjdbcbaseBaseStatementpostImplExecute(Unknown Source)
  
  at commicrosoftjdbcbamonExecute(Unknown Source)
  at commicrosoftjdbcbaseBaseStatementexecuteQueryInternal(Unknown Source)
  at commicrosoftjdbcbaseBaseStatementexecuteQuery(Unknown Source)
  at DbTestinit(DbTestjava:)
  at DbTest<init>(DbTestjava:)
  at DbTestmain(DbTestjava:)
  Press any key to continue
  
  在這兒用戶已經登陸上去但是卻不能訪問裡邊的數據表出現這個問題的原因在於sa用戶為系統用戶它雖然能夠登陸數據庫但是test數據庫裡邊卻沒有這個用戶的訪問權限所以我們現在為這個數據庫重新建立一個用戶
  
  share 建立過程如下在test數據庫中選重用戶 〉新建用戶 〉名稱選擇(這一步中有兩個關鍵點 身份驗證選sql身份驗證默認數據庫選test)〉建立新教色share 此時更改程序將用戶登陸名和密碼修改一下重新運行程序
  
  driver is ok
  conection is ok
  
  
  
  
  
  
  Press any key to continue
  
  這次順利通過測試
  
  哈哈其實這些小問題花了我一個晚上才解決真是浪費時間所以寫下來希望能使遇到類似問題的朋友不要重蹈覆轍在此提醒大家遇到問題時多上網查查多在論壇裡問問這樣你學到的會更多更節省時間更有效率
  
  總結sqlserve 和jdbc 的融合問題關鍵涉及到sp補丁(端口開放)還有用戶問題解決這兩個問題之後剩余的便是sqlserver 操作問題了還有一點在遠程操作的時候要把sqlserver 組設置一下在安全性裡邊亦將身份驗證更改為sqlserve 驗證即可

From:http://tw.wingwit.com/Article/program/Java/hx/201311/26395.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.