摘要:本文主要介紹采用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
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對數據庫的訪問會越來越簡單,並且應用的范圍也會越來越廣,當然還會有許多新的功能等待我們去開發。