服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

用java访问sql server 2000数据库

摘要:本文主要介绍采用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所示。

用java访问sql server 2000数据库(图一)
图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所示。

用java访问sql server 2000数据库(图二)
图2

  结束语

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

扫描关注微信公众号