Java通过ODBC访问SQL Server 2000

用Java访问SQL Server 2000数据库来源:

  摘要:本文主要介绍采用JDBC、ODBC接口实现了与SQL Server2000数据库连接,并利用Java应用程序对其进行访问,同时通过图形用户界面实现了简单查询功能。

数据库技术和网络技术是当今计算机领域两大热门话题,数据库技术自产生以来,在技术上已发展成熟。而作为前端访问开发工具和环境仍处在不断完善和发展之中,除了网络上使用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程序代码。 字串2

SQL Server2000是微软公司新一代数据库产品,它是在SQL Server7.0建立坚固基础上产生,并对SQL Server7.0做了大量扩展。SQL Server2000通过高端硬件平台以及最新网络和存储技术支持,可为最大Web站点和企业级应用提供可扩展性和高可靠性。 字串6

  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”,打开“企业管理器”在“数据库”中建立名为“test”数据库,并在其下制作名为“student”数据表,如图1所示。

  (2)建立(ODBC)数据源和驱动程序 字串4

  在控制面板上通过“管理工具”“数据源(ODBC)”打开“ODBC数据源管理器”对话框,单击“系统DSN”选项卡,然后单击“添加”按钮,得到“创建数据源”对话框,选择“SQL Server”并单击“完成”按钮,在出现“建立新数据源到SQL Server”对话框中“数据源名称”项填写“stu”并选取“服务器名”,然后单击“下一步”按钮,选择“使用网络登录IDWindows NT验证”项目,单击“下一步”按钮,把默认数据库改为“test”,再单击“下一步”,单击“完成”按钮,然后可以单击“测试数据源”,成功后,单击“确定”按钮,完成了(ODBC)数据源和驱动程序建立。

  3 编写代码

将代码保存在JdbcTest.java文件中:

/**

 * Java通过ODBC访问SQL Server 2000  application

* @范春江

 * @version 1.00 08/05/09

 */

import java.sql.*;

public class JdbcTest{

       public static void main(String []  args){

              String url="jdbc:odbc:stu";

              Connection con;

              String sql;

              Statement stmt;

              String num,name,sex;

              int age,math,eng,spec;

              try{

                     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

              }catch(java.lang.ClassNotFoundException e){

                     System.err.print("ClassNotfoundException: ");

                     System.out.println(e.getMessage());

              }

              try{

                     con=DriverManager.getConnection(url,"java","java");

                     stmt=con.createStatement();

   //向student表中插入一行记录

                     sql="insert into student values('200108','赵小龙','男',20,71,62,76)";

                  stmt.executeUpdate(sql);

   //检索student 中的所有记录并获取数据输出

                     sql="SELECT * from student";

                     ResultSet rs=stmt.executeQuery(sql);

                     System.out.println("学号       姓名       性别     年龄    高等数学   英语    专业课");

                     while(rs.next()){

                            num=rs.getString(1);

                            name=rs.getString(2);

                            sex=rs.getString(3);

                            age=rs.getInt(4);

                            math=rs.getInt(5);

                            eng=rs.getInt("英语");

                            spec=rs.getInt("专业课");

                           

                            System.out.println(num+"     "+name+"  "+sex+"        "+age+"       "+math+"       "+eng+"       "+spec);

                     }

         //检索高等数学成绩80分以上的学生信息

                     rs=stmt.executeQuery("select 学号,姓名,高等数学,英语,专业课 from student where 高等数学>=80");

                     System.out.println();

                     System.out.println("The students whose math mark is beyond 80 are: ");

                     while(rs.next()){

                            num=rs.getString(1);

                            name=rs.getString(2);

                            math=rs.getInt(3);

                            eng=rs.getInt("英语");

                            spec=rs.getInt("专业课");

                            System.out.println("学号="+num+"  "+"姓名="+name+"  "+"高等数学="+math+" "+"英语="+eng+" "+"专业课="+spec);

                     }

                     stmt.close();

                     con.close();

              }catch(SQLException ex){

                     System.out.println("SQLException: "+ex.getMessage());

              }

                    

       }

}

  4 运行程序

首先编绎:javac JdbcTest.java

编译成功后,执行:java Jdbc  

运行结果:

 

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值