亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

sqlserver 2000h 和 jdbc 的融合問題

2019-11-18 12:37:18
字體:
來源:轉載
供稿:網友

  sql server 2000 是當今網絡編程中使用的比較多的一個數據庫系統,而java則是流行的網絡編程語言,在網絡編程中涉及的比較多也比較重要的就是數據庫問題,java自身提供了對各類主流數據庫系統的支持,通過提供java.sql 庫,提供了一個統一的接口,使得可以在java環境下不必對程序作大規模的修改,只要更改相應的驅動程序,即可實現對各類數據庫的操作,從而提高軟件的生存周期和降低軟件的開發成本和維護費用,在這種情況下sql server 2000 和java 的融合問題就顯得比較重要了,本文簡要地闡述一下sql server 2000 和jdk的融合問題。
  
  系統需求
  
  數據庫:sql server 2000 sp3
  
  驅動程序:sql server driver for jdbc
  
  java版本:jdk1.2以上
  
  1:我們首先使用jdbc-odbc橋來實現數據庫的連接,這個相對簡單
  
  首先使用sql server 企業治理其建立一個數據庫test,并建立一個簡單的表 first_table
  
  建立odbc數據源 ,各步驟采用默認操作即可
  
  編寫一個簡單的測試程序,該程序主要實現數據庫的連接,以及一個簡單的sql操作 ,代碼如下:
  
  /*********************************************** /* /*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 = "sun.jdbc.odbc.JdbcOdbcDriver";       url  = "jdbc:odbc:store_manager";       user  = "share";       pwd  = "share";       init();     }     public void init()     {         try{           Class.forName(driver);           System.out.  
  運行結果如下:
  
  driver is ok
  conection is ok
  1001
  1002
  1003
  1004
  1005
  1006
  Press any key to continue...
  
  順利通過測試
  
  2,我們這次不通過odbc橋來操作數據庫,我們采用sql server driver 來實現對sqlserver數據庫的操作, 這將是我們這篇文章的重點,因為jdbc-odbc橋是一種常見的操作windows系統數據庫的常用方法,但它存在的缺點很多,所以現在很多開發者都側重于使用sqlserver driver來操作,在這里我們通過一步步的調試,來加深讀者對這種連接的理解
  
  在通常的理解下,只要我們裝了sqlserver driver for jdbc 我們便可進行數據庫編程,事實則不然,首先我們看下邊的代碼:
  
  /*********************************************** /* /*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 =StoreManager";       user  = "sa";       pwd  = "potsmart10";       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();     } }
  
  這段代碼跟上變得代碼是一樣的,差別在于驅動,還有url,這是在使用sqlserver driver for jdbc 中碰到的困惑
  
  按道理講,上邊這段代碼應該沒錯,可首先我們來看一下,假如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用戶為系統用戶
  
  它雖然能夠登陸數據庫,但是storeManager數據庫里邊卻沒有這個用戶的訪問權限,所以,我們現在為這個數據庫重新建立一個用戶share ,建立過程如下:在storeManager數據庫中選重用戶 ---〉新建用戶 -- 〉名稱選擇(這一步中有兩個要害點 1:身份驗證選sql身份驗證,默認數據庫選StoreManager)-〉建立新教色share ,此時更改程序,將用戶登陸名和密碼修改一下,重新運行程序
  
  driver is ok
  conection is ok
  1001
  1002
  1003
  1004
  1005
  1006
  Press any k

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲自拍av在线| 欧美日韩激情美女| 欧美激情久久久久| 久久综合九色九九| 欧美亚洲第一区| 亚洲欧美国产精品久久久久久久| 久久久久女教师免费一区| 日韩av片永久免费网站| 狠狠久久亚洲欧美专区| 久久精品成人欧美大片古装| 亚洲人成电影在线| 91视频国产高清| 亚洲国产欧美自拍| 成人精品久久av网站| 亚洲free嫩bbb| 欧美成人精品一区二区三区| 97超级碰在线看视频免费在线看| 久久久免费高清电视剧观看| 欧美另类暴力丝袜| 91性高湖久久久久久久久_久久99| 日韩精品电影网| 欧美日韩福利视频| 欧美专区第一页| 欧美性猛交99久久久久99按摩| 欧美视频国产精品| 日韩精品在线电影| 2021久久精品国产99国产精品| 久久久久亚洲精品成人网小说| 97婷婷涩涩精品一区| 日产精品久久久一区二区福利| 国产一区二区三区在线视频| 亚洲无av在线中文字幕| 亚洲精品美女久久久久| 日日摸夜夜添一区| 久久久久日韩精品久久久男男| 亚洲综合成人婷婷小说| 欧美在线不卡区| 伊人伊人伊人久久| 国产精品成人免费视频| 国产日韩欧美在线播放| 亚洲精品一区二区三区婷婷月| 成人精品一区二区三区| 国产精自产拍久久久久久蜜| 在线视频亚洲欧美| 国内精品小视频在线观看| 中文字幕亚洲二区| 亚洲欧美在线磁力| 97成人精品视频在线观看| 久久夜色精品国产| 国产精品成人久久久久| 69av视频在线播放| 国产精品久久久久影院日本| 国内揄拍国内精品少妇国语| www.亚洲免费视频| 久热精品视频在线免费观看| 欧美性xxxx极品高清hd直播| 欧美日韩亚洲激情| 亚洲色图狂野欧美| 亚洲综合日韩在线| 成人黄在线观看| 欧亚精品在线观看| 久久综合久久八八| 91在线直播亚洲| 日本欧美黄网站| 国产精品一区二区av影院萌芽| 97碰在线观看| 91国产中文字幕| 国产精品国产三级国产aⅴ浪潮| 国产成人高清激情视频在线观看| 亚洲欧美色婷婷| 久久这里只有精品视频首页| 欧美在线观看网站| 亚洲女人初尝黑人巨大| 成人精品一区二区三区电影免费| 大荫蒂欧美视频另类xxxx| 成人网页在线免费观看| 国产69精品99久久久久久宅男| 97人人爽人人喊人人模波多| 欧美精品一区在线播放| 成人免费直播live| 日韩av片永久免费网站| 亚洲无线码在线一区观看| 国产欧美精品在线| 日韩成人中文字幕| 日韩电影免费在线观看| 性色av一区二区三区红粉影视| 国产性猛交xxxx免费看久久| 国产精品久久久久av免费| 久久精品国产69国产精品亚洲| 九九精品在线播放| 欧美精品亚州精品| 亚洲午夜性刺激影院| 性日韩欧美在线视频| 日韩第一页在线| 欧美日韩国产成人高清视频| 精品国偷自产在线视频| 欧美极品少妇xxxxⅹ裸体艺术| 国产亚洲xxx| 久久色在线播放| 亚洲欧美日韩综合| 色视频www在线播放国产成人| 久久影院模特热| 国产精品久久久久久av福利| 91精品在线观| 亚洲一区二区在线播放| 黑人精品xxx一区| 欧美日韩美女在线观看| 91极品女神在线| 精品偷拍一区二区三区在线看| 午夜精品免费视频| 色婷婷av一区二区三区在线观看| 亚洲欧美中文日韩v在线观看| 国产精品99一区| 亚洲高清不卡av| 一本色道久久综合狠狠躁篇的优点| 日韩午夜在线视频| 国产精品久久久久久一区二区| 亚洲有声小说3d| 超碰日本道色综合久久综合| 日韩一级裸体免费视频| 97在线视频免费| 日本精品视频在线| 日韩的一区二区| 亚洲欧美制服中文字幕| 中文字幕不卡av| 久久综合色影院| 亚洲精品videossex少妇| 69影院欧美专区视频| 日本在线观看天堂男亚洲| 欧美亚州一区二区三区| 久久久视频免费观看| 欧美影院久久久| 欧美国产日本在线| 久久久久久久爱| 91影院在线免费观看视频| 国产精品永久在线| 久久人人爽人人爽爽久久| 国产精品久久二区| 亚洲欧美中文字幕在线一区| 57pao国产精品一区| 日韩成人激情在线| 日韩福利在线播放| 色多多国产成人永久免费网站| 亚洲美女中文字幕| 人人做人人澡人人爽欧美| 日韩美女主播视频| 色99之美女主播在线视频| 综合国产在线观看| 久久久久久久久国产| 久热爱精品视频线路一| 欧美一性一乱一交一视频| 欧美激情精品久久久久久大尺度| 国产激情视频一区| 91最新在线免费观看| 精品久久久91| 久久精品国产69国产精品亚洲| 久久亚洲春色中文字幕| 在线视频欧美性高潮| 欧美精品一本久久男人的天堂| 亚洲欧美日韩成人| 亚洲男人天堂视频| 插插插亚洲综合网| 欧美极品在线播放| 国产成人精品最新|