Java数据库(JDBC)

时间:2022-10-01 03:06:43

Java数据库(JDBC)

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

关键词:Java JDBC ODBC Access SQL

前言

Java语言是编写数据库应用程序的杰出语言之一,它提供了方便访问数据的技术。利用Java语言中的JDBC技术,用户能方便地开发出基于Web网页的数据库访问程序,从而扩充网络应用功能。JDBC(Java Database Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问接口。JDBC由一组用Java语言编写的类与接口组成,通过调用这些类和接口所提供的方法,用户能够以一致的方式连接多种不同的数据库系统(如Access、SQL Server 2000、Oracle、Sybase等),进而可使用标准的SQL语言来存取数据库中的数据,而不必再为每一种数据库系统编写不同的Java程序代码。

Java应用程序通过JDBC API(java.sql)与数据库连接,而实际的动作则是由JDBC驱动程序管理器(JDBC Driver Manager)通过JDBC驱动程序与数据库系统进行连接。ODBC(Open DataBase Connectivity)即开放式的接口,它为用户提供了一个访问关系数据库的标准接口,对于不同的数据库它提供了一套统一的API;可以使应用程序通过API访问任何提供了ODBC驱动程序的数据库,而目前所有的关系数据库都提供了ODBC驱动程序,所以ODBC已经成为数据库访问的业界标准,并得到了广泛应用。

JDBC(Java DataBase Connectivity)是一种中间件,实现Java应用程序与数据库管理系统之间的接口功能。正如上面所说的,JDBC将数据库编程的抽象程度提高,使得程序员只需说明要进行“数据库连接”而不用说明“怎么连接”,要进行“数据操作”而不用说明“怎么操作”。这种抽象建立在SQL的基础上,应用程序可嵌入SQL访问和操作数据库。这使得应用程序可以独立于特定的关系数据库管理系统。

1. JDBC的体系结构

简单地说,JDBC为应用程序提供一组编程接口,这些接口定义在Java API的java.sql程序包以及JDK 1.2版本以后扩展的javax.sql程序包中。JDBC与数据库管理系统之间则通过安装不同的(一般是与特定数据库管理系统相关的)驱动程序进行通信。驱动程序负责解释应用程序使用JDBC编程接口嵌入的SQL语句,访问特定的数据库管理系统中的数据库,然后得到相应的结果。应用程序利用JDBC编程接口使用返回的结果,完成对数据库的访问。这种体系结构是Java世界中常用的方式,JDBC的体系结构如图1所示。

ODBC(Open Database Connection)也是一种已被广泛使用的应用程序与数据库连接的中间件,但与JDBC提供Java语言编程接口不同,ODBC提供的是C语言编程接口,许多数据库管理系统供应商已经为ODBC编写了相应的数据库驱动程序。JDBC-ODBC桥接驱动器是Java应用程序常用的,由JDBC API自带的一种驱动程序,它通过ODBC以及数据库驱动器与数据库相连,负责将ODBC提供的C语言编程接口转换为Java语言编程接口。

JDBC-ODBC桥是一种JDBC驱动程序,它通过将JDBC操作转换为ODBC操作来实现。利用JDBC-ODBC桥可以使程序开发人员不需要学习更多的知识就可以编写JDBC应用程序,并能够充分利用现有的ODBC数据源。JDBC-ODBC桥驱动程序可以使JDBC能够访问几乎所有类型的数据库。

2.JDBC(Java通过JDBC、ODBC接口访问数据库)所能完成的3件事

(Ⅰ)与一个数据库连接

(Ⅱ)向数据库发送SQL语句

(Ⅲ)处理数据库返回的结果

下面我们就结合一个例子来说明这3步。

假设我们有一个用access设计的数据库:student。Mdb,该表中有一个表,其名字为chengjibiao(学号,姓名,数学,物理,英语)。

(1)数据库连接

设置数据源:

打开Windows中的控制面板,双击ODBCData Source图标,出现User Data Source对话框,单击add按钮,增加新的数据源,选择microsoft access driver(*.mdb)之后,单击完成按钮。在Data Source name问本框里为数据源起一个你喜欢的名字(比如redsun),再单击select按钮,把数据源redsun设成要连接的数据库student.mdb,单击ok按钮就可以了。

建立JDBC-ODBC桥接器:

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

其中Class是包java.sql中的一个类,该类通过调用它的静态方法forName就可以建立JDBC-ODBC桥接器,其标准方法是:

Try { Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

}

Catch (ClassNotFoundExceptione)

{}

连接数据库:

使用包java.sql中的Connection类声明一个对象,再使用类DriverManager调用它的静态方法getConnection创建这个连接对象,其标准方法为:

Try{Conncetion

con=DriverManager.getConnection(“jdbc:odbc:redsun”,“snow”,“lss”);

}

Catch(SQLException e) {}

其中snow和lss分别为Login name和password。

(2)向数据库发送SQL语句

首先使用statement声明一个SQL语句对象,然后通过刚才创建的连接数据库的对象con调用createstatment()方法来创建这个SQL语句对象。

try {Statement sql=con.createStatement();}

catch(SQLException e) { }

(3)处理数据库返回的结果

有了SQL对象之后,就可以调用相应的方法实现对数据库的查询和修改,并将查询结果存放在一个ResultSet类声明的对象中,也就是说SQL语句对数据库的查询操作将返回一个ResultSet对象:

ResultSet rs=sql.executeQuery(“SELECT * FROM 成绩表”);

下面是一个关于数据库查询的例子。

import java.sql.*;

public class aaa

{public static void main(String args)

{ String name,xuehao;Date date; int math,physics,english;

Connection con;Statement sql; ResultSet rs;

try{Class.forName(″sun.jdbc.odbc.JdbcOdbcDriver″);}

catch(ClassNotFoundException e){}

try

{

con=DriverManager.getConnection(″jdbc:odbc:redsun″,″snow″,″lss″);

sql=con.createStatement();

rs=sql.executeQuery(″SELECT * FROM chengjibiao WHERE 学号 = '4' ″);

while(rs.next())

{ name=rs.getString(2); xuehao=rs.getString(1);

math=rs.getInt(″数学″);

physics=rs.getInt(″物理″);english=rs.getInt(″英语″);

System.out.println(″姓名:″+name);

System.out.println(″学号:″+xuehao);

System.out.println(″数学:″+math);

System.out.println(″物理:″+physics);

System.out.println(″英语:″+english);

}

con.close( );

}

catch(SQLException e1) {}

}

}

结束语

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

上一篇:让《思想道德修养与法律基础》课活起来 下一篇:多媒体网络教学模式的实践与探讨