程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 用Java訪問SQL Server 2000數據庫

用Java訪問SQL Server 2000數據庫

編輯:關於JAVA

摘要:本文主要介紹采用JDBC、ODBC接口實現了與SQL Server2000數據庫的連接,並利用Java應用程序對其進行訪問,同時通過圖形用戶界面實現了簡單的查詢功能。

關鍵詞:Java,SQL Server,數據庫

前言

數據庫技術和網絡技術是當今計算機領域的兩大熱門話題,數據庫技術自產生以來,在技術上已發展成熟。而作為前端訪問的開發工具和環境仍處在不斷完善和發展之中,除了網絡上使用的ASP、PHP、JSP作為前端連接數據庫技術外,小型系統上常用訪問數據庫技術有Delphi、Visual Basic、PowerBuilder及VC++等,而Java也是其中之一。

Java語言是編寫數據庫應用程序的傑出語言之一,它提供了方便訪問數據的技術。利用Java語言中的JDBC技術,用戶能方便地開發出基於Web網頁的數據庫訪問程序,從而擴充網絡應用功能。JDBC(Java Database Connectivity,Java數據庫連接)是一種用於執行SQL語句的Java API,可以為多種關系數據庫提供統一的訪問接口。JDBC由一組用Java語言編寫的類與接口組成,通過調用這些類和接口所提供的方法,用戶能夠以一致的方式連接多種不同的數據庫系統(如Access、SQL Server 2000、Oracle、Sybase等),進而可使用標准的SQL語言來存取數據庫中的數據,而不必再為每一種數據庫系統編寫不同的Java程序代碼。

SQL Server2000是微軟公司新一代的數據庫產品,它是在SQL Server7.0建立的堅固基礎上產生的,並對SQL Server7.0做了大量擴展。SQL Server2000通過高端硬件平台以及最新網絡和存儲技術的支持,可為最大的Web站點和企業級應用提供可擴展性和高可靠性。

Java通過JDBC、ODBC接口訪問數據庫

1 JDBC、ODBC接口

Java應用程序通過JDBC API(java.sql)與數據庫連接,而實際的動作則是由JDBC驅動程序管理器(JDBC Driver Manager)通過JDBC驅動程序與數據庫系統進行連接。ODBC(Open DataBase Connectivity)即開放式的接口,它為用戶提供了一個訪問關系數據庫的標准接口,對於不同的數據庫它提供了一套統一的API;可以使應用程序通過API訪問任何提供了ODBC驅動程序的數據庫,而目前所有的關系數據庫都提供了ODBC驅動程序,所以ODBC已經成為數據庫訪問的業界標准,並得到了廣泛應用。

JDBC-ODBC橋是一種JDBC驅動程序,它通過將JDBC操作轉換為ODBC操作來實現的。利用JDBC-ODBC橋可以使程序開發人員不需要學習更多的知識就可以編寫JDBC應用程序,並能夠充分利用現有的ODBC數據源。JDBC-ODBC橋驅動程序可以使JDBC能夠訪問幾乎所有類型的數據庫。

2 利用Java應用程序訪問SQL Server2000數據庫

(1)建立數據庫

啟動“Microsoft SQL Server2000”,打開“企業管理器”在“數據庫”中建立名為“mydata”的數據庫,並在其下制作名為“wuzi”的數據表,如圖1所示。

圖1

(2)建立(ODBC)數據源和驅動程序

在控制面板上通過“管理工具”的“數據源(ODBC)”打開“ODBC數據源管理器”對話框,單擊“系統DSN”選項卡,然後單擊“添加”按鈕,得到“創建數據源”對話框,選擇“SQL Server”並單擊“完成”按鈕,在出現的“建立新的數據源到SQL Server”對話框中的“數據源名稱”項填寫“wzgl”並選取“服務器名”,然後單擊“下一步”按鈕,選擇“使用網絡登錄ID的Windows NT驗證”項目,單擊“下一步”按鈕,把默認的數據庫改為“mydata”,再單擊“下一步”,單擊“完成”按鈕,然後可以單擊“測試數據源”,成功後,單擊“確定”按鈕,完成了(ODBC)數據源和驅動程序的建立。

3 編寫代碼

將代碼保存在jdbc.java文件中:

import java.awt.*;import java.awt.event.*;import java.sql.*;
public class jdbc //定義主類
{
 public static void main(String args[])
 {
  GUI gui=new GUI(); //創建類GUI的對象
  gui.pack(); //裝載執行GUI類
 }
}
class GUI extends Frame implements Action Listener
{
 TextArea text; Panel panel; TextField sno; Button btn;
 GUI() //構造方法
 {
  super("物資情況查詢");setLayout(new BorderLayout());
  setBackground(Color.cyan);
  setVisible(true);text=new TextArea();
  btn=new Button("查詢");
  sno=new TextField(16);
  panel=new Panel();
  panel.add(new Label("輸入被查詢的物資編號:"));
  panel.add(sno); panel.add(btn);
  add("North",panel); add(text,"Center");
  text.setEditable(false);btn.addActionListener(this);
  addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)
   {
    setVisible(false);
    System.exit(0);
   }
 });
}
public void actionPerformed(ActionEvent e) {
 if(e.getSource()==btn) //當用戶按下查詢按鈕時
 {
  text.setText("查詢結果"+'\n'); //顯示提示信息
  try
  {
   Liststudent();
  }
  catch(SQLException ee) { }
 }
}
public void Liststudent() throws SQLException //針對數據庫的操作
{
 String bh,mc,xh,lb,dw,sj;
 int sl; float dj,je;
 try
 {
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 }
 catch(ClassNotFoundException e) { }
 Connection con=DriverManager.getConnection("jdbc:odbc:wzgl");
 Statement sql=con.createStatement(); //創建Statement對象
 ResultSet rs=sql.executeQuery("select * from wuzi");
 while(rs.next()) //輸出被查詢的情況
 {
  bh=rs.getString("物資編號");
  mc=rs.getString("物資名稱");
  xh=rs.getString("規格型號");
  lb=rs.getString("類別");
  dw=rs.getString("計量單位");
  sl=rs.getInt("數量");
  dj=rs.getFloat("單價");
  je=rs.getFloat("金額");
  sj=rs.getDate("時間").toString();
  if(bh.trim().equals(sno.getText().trim()))
  {
   text.append('\n'+"物資編號"+" "+"物資名稱"+" "+"規格型號"+" "+"類別"+" "+"計量單位"+" "+"數量"+" "+"單價"+" "+"金額"+" "+"時間"+'\n');
   text.append('\n'+bh+" "+mc+" "+xh+" "+lb+" "+dw+" "+sl+" "+dj+" "+je+" "+sj+" "+'\n');
  }
 }
}
}

4 運行程序

首先編繹:javac jdbc.java

編譯成功後,執行:java jdbc

執行後在文本框中輸入要查詢物資的物資編號,單擊“查詢”按鈕,在下面的文本框中顯示被查詢物資的所有信息。如圖2所示。

圖2

結束語

本文只涉及到對SQL Server2000數據庫訪問的查詢操作,也可以進行插入、刪除、修改等操作。隨著數據庫技術的迅猛發展和Java版本的不斷升級,利用Java對數據庫的訪問會越來越簡單,並且應用的范圍也會越來越廣,當然還會有許多新的功能等待我們去開發。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved