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

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

實例解析SQL Server 2000和JDBC的融合

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

  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.  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();
  }
  }
  
  運行結果如下:
  
  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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人激情小视频| 国产精品1区2区在线观看| 国产精品一区久久| 亚洲一区二区日本| 国产精品亚洲片夜色在线| 欧美一区二区大胆人体摄影专业网站| 亚洲美女www午夜| 亚洲娇小xxxx欧美娇小| 国产精品自产拍在线观看| 日韩av电影院| 亚洲a∨日韩av高清在线观看| 日韩亚洲综合在线| 91国语精品自产拍在线观看性色| 欧美日韩亚洲激情| 亚洲性xxxx| 色综合视频一区中文字幕| 日韩成人在线电影网| 美女av一区二区| 亚洲欧美一区二区三区情侣bbw| 亚洲成色999久久网站| 久久久久久国产| 中文字幕日韩精品有码视频| 精品久久久久久国产| 5566成人精品视频免费| 国产精品视频资源| 在线日韩精品视频| 久久99久久亚洲国产| 国产精品久久久久久婷婷天堂| 日韩av网站电影| 欧美专区日韩视频| 欧美另类69精品久久久久9999| 欧美高清在线观看| 久久激情视频免费观看| 亚洲欧美综合精品久久成人| 欧美成aaa人片在线观看蜜臀| 91手机视频在线观看| 国产成人精品亚洲精品| 成人黄色激情网| 亚洲欧美日韩久久久久久| 亚洲一区二区久久久| 欧美一级视频一区二区| 国产视频福利一区| 国产精自产拍久久久久久蜜| 亚洲天堂成人在线视频| 91最新在线免费观看| 亚洲国产精品大全| 久久天天躁狠狠躁夜夜爽蜜月| 日韩美女中文字幕| 91精品国产综合久久男男| 国产精品久久久| 欧美日韩国产综合新一区| 久久免费精品日本久久中文字幕| 久久久国产精彩视频美女艺术照福利| 91黑丝高跟在线| 夜色77av精品影院| 欧美大片va欧美在线播放| 高清欧美性猛交| 激情av一区二区| 欧美日韩亚洲系列| 日韩视频―中文字幕| 久久久久久久久网站| 亚洲精品午夜精品| 欧美视频裸体精品| 久久九九亚洲综合| 日韩一区视频在线| 亚洲成色999久久网站| 成人午夜激情网| 九九热精品视频在线播放| 欧美日本精品在线| 亚洲福利视频专区| 亚洲欧美国产精品va在线观看| 欧美精品成人91久久久久久久| 亚洲精品有码在线| 麻豆国产精品va在线观看不卡| 日韩av影院在线观看| 国产精品久久久| 日韩精品在线视频观看| 亚洲日韩欧美视频一区| 亚洲天堂男人天堂| 欧美壮男野外gaytube| 亚洲v日韩v综合v精品v| 国产精品999999| 黑人精品xxx一区| 欧美日韩在线免费观看| 亚洲毛片一区二区| 国产成人在线一区| 日韩免费不卡av| 亚洲毛片在线看| 伊人亚洲福利一区二区三区| 国产亚洲精品久久久久久777| 午夜精品久久久久久久久久久久| 国产精品999| 亚洲第一区第一页| 亚州精品天堂中文字幕| 亚洲香蕉成视频在线观看| 97在线视频免费| 日韩电影在线观看永久视频免费网站| 欧美一级淫片aaaaaaa视频| 日韩电视剧在线观看免费网站| 国产一区二区三区在线观看视频| 国产精品久久久久久搜索| 人人爽久久涩噜噜噜网站| 亚洲色图狂野欧美| 久久亚洲精品毛片| 98午夜经典影视| 亚洲精品小视频| 亚洲乱码一区av黑人高潮| 美日韩精品视频免费看| 在线观看精品自拍私拍| 亚洲国产精品一区二区久| 亚洲片国产一区一级在线观看| 国产精品免费小视频| 一区二区成人精品| 成年无码av片在线| 欧美日韩成人在线视频| 欧美在线视频免费播放| 97视频com| 久久久久久九九九| 欧美—级a级欧美特级ar全黄| 粗暴蹂躏中文一区二区三区| 成人亚洲综合色就1024| 色综合伊人色综合网| 国产精品久久久久久久久久尿| 亚洲精品国产美女| 国产日韩欧美在线| 国产69精品久久久久9999| 日韩亚洲欧美中文高清在线| 亚洲国产精品系列| 日本一区二区不卡| 中文字幕无线精品亚洲乱码一区| 中文字幕亚洲欧美一区二区三区| 91在线免费看网站| 96sao精品视频在线观看| 日韩一区二区三区xxxx| 九九热精品视频在线播放| 欧美激情第6页| 成人免费黄色网| 韩剧1988在线观看免费完整版| 欧美一区亚洲一区| 日韩hd视频在线观看| 欧美激情一区二区三区在线视频观看| 国a精品视频大全| 亚洲欧美日韩一区在线| 欧美日韩ab片| 亚洲免费视频网站| 色综合色综合网色综合| 欧美成人精品影院| 97热在线精品视频在线观看| 亚洲精品视频二区| 日本韩国欧美精品大片卡二| 亚洲男人av电影| 亚洲色图美腿丝袜| 91在线观看免费观看| 精品香蕉在线观看视频一| 日韩av在线网| 午夜精品久久久久久久久久久久| 日韩免费黄色av| 亚洲毛片在线观看| 亚洲欧洲国产精品| 亚洲美女又黄又爽在线观看| 2019中文字幕全在线观看| 亚洲欧洲午夜一线一品| 狠狠躁夜夜躁人人躁婷婷91| 91免费视频国产|