当前位置:首页 -> 焦点新闻

利用Java访问SQL Server2000数据库

2005/1/7 12:12:21       

辽宁工程技术大学 王洪香 包剑 冀常鹏
  本文主要介绍通过建立SQL Server的开放数据源(ODBC),采用JDBC、ODBC接口实现了与SQL Server2000数据库的连接,并利用Java应用程序对其进行访问,同时通过图形用户界面实现了简单的查询功能。

    1.前言

    数据库技术和网络技术是当今计算机领域的两大热门话题,数据库技术自产生以来,在技术上已发展成熟。而作为前端访问的开发工具和环境仍处在不断完善和发展之中,除了网络上使用的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站点和企业级应用提供可扩展性和高可靠性。

    2.Java通过JDBC、ODBC接口访问数据库

    2.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.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)数据源和驱动程序的建立。

    2.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); }
   }  
  }
}

    2.4 运行程序

    首先编绎:javac jdbc.java
    编译成功后,执行:java jdbc
    执行后在文本框中输入要查询物资的物资编号,单击“查询”按钮,在下面的文本框中显示被查询物资的所有信息。如图2所示。

图2

    3. 结束语

    本文只涉及到对SQL Server2000数据库访问的查询操作,也可以进行插入、删除、修改等操作。随着数据库技术的迅猛发展和Java版本的不断升级,利用Java对数据库的访问会越来越简单,并且应用的范围也会越来越广,当然还会有许多新的功能等待我们去开发。


 

  

煤炭网版权与免责声明:

凡本网注明"来源:煤炭网www.coal.com.cn "的所有文字、图片和音视频稿件,版权均为"煤炭网www.coal.com.cn "独家所有,任何媒体、网站或个人在转载使用时必须注明"来源:煤炭网www.coal.com.cn ",违反者本网将依法追究责任。

本网转载并注明其他来源的稿件,是本着为读者传递更多信息的目的,并不意味着本网赞同其观点或证实其内容的真实性。其他媒体、网站或个人从本网转载使用时,必须保留本网注明的稿件来源,禁止擅自篡改稿件来源,并自负版权等法律责任。违反者本网也将依法追究责任。 如本网转载稿件涉及版权等问题,请作者在两周内尽快来电或来函联系。

  • 用手机也能做煤炭生意啦!
  • 中煤远大:煤炭贸易也有了“支付宝”
  • 中煤开启煤炭出口贸易人民币结算新时代
  • 下半年煤炭市场依然严峻
市场动态

网站技术运营:北京真石数字科技股份有限公司、喀什中煤远大供应链管理有限公司、喀什煤网数字科技有限公司

总部地址:北京市丰台区总部基地航丰路中航荣丰1层

京ICP备18023690号-1      京公网安备 11010602010109号


关注中煤远大微信
跟踪最新行业资讯