随着电子商务及动态网站的迅速发展,java 网络数据库编程得到了越来越广泛的应用。
JDBC由一组用Java语言编写的类组成,它已成为一种供数据库开发者使用的标准API。通过JDBC本身提供的一系列类和接口,Java 编程开发人员能够很方便地编写有关数据库方面的应用程序。
JDBC简介
JDBC(Java Database Connectivity) 是Java 实现数据库访问的API(application PRogramming Interface),与Microsoft 的ODBC(Open Database Connectivity) 一样,JDBC是建立在X/Open SQL CLI(Call Level Interface)基础上的。JDBC的主要功能是治理存放在表中的数据,所以它定义了一系列与关系数据库进行交互的类和接口,如数据库连接、SQL 语句、结果集和元数据等。
一般来说,JDBC 的工作主要分为3个步骤:首先与某一关系数据库建立连接;然后向数据库发送SQL 语句,实现对数据库的操作;最后取得处理结果。
实现上述JDBC基本功能的3个步骤程序示例如下:
...........
connectioncon=DriveManager.GetConnection("jdbc:odbc: ghq,"root","passWord"):
//建立与数据库的连接
Statement stmt=con.createstatement(); //建立语句对象
ResultSet rs=stmt.executeQuery("SELECT a,b FROM Table")
//运行SQL语句,返回数据库操作结果
while (rs.next()){
int x=getInt("a");//获得数据库表记录a项的值
string s=getstring("b"); //获得数据库表记录b项的值
}
.............
JDBC 接口和驱动程序
1.JDBC 接口
JDBC提供的接口主要有两种,一种是面向一般应用程序开发人员的JDBC API,另一种是底层的JDBC Driver API,如图1所示。
图1 使用JDBC的基本结构
JDBC API是一系列抽象的接口,应用程序开发人员通过它可以编写访问数据库的Java应用程序。JDBC API中,抽象类的实现是由驱动程序开发商提供的。驱动程序实现了应用程序和某个数据库产品之间的接口,它的治理器则对应用程序和驱动程序之间的交互进行控制。JDBC API主要用来连接数据库和直接调用SQL命令,执行各种SQL语句。利用JDBC API可以执行一般的SQL语句、动态SQL语句,以及带IN和OUT参数的存储过程。
JDBC中的驱动程序必须提供实现方法的接口。JDBC API被定义在java.sql包中,其中定义了JDBC API用到的所有类、接口和方法,主要的类和接口有:
· DriverManager类——处理驱动程序的装入,为新的数据库连接提供支持。驱动程序要向该类注册后才能被使用。进行连接时,该类根据JDBC URL选择匹配的驱动程序。
· java.sql.Driver接口——驱动程序接口,负责确认URL与驱动程序的匹配、建立到数据库的连接等,其中的方法需要有相应的驱动程序实现。
· java.sql.Connection接口——表示到特定数据库的连接,其中的方法需要有相应的驱动程序实现。
· java.sql.Statement接口——为SQL语句提供一个容器,包括执行SQL语句、取得查询结果等方法。此接口有两个子类型:
(1)java.sql.PreparedStatement,用于执行预编译的SQL语句;
(2)java.sql.CallableStatement,用于执行对一个数据库内嵌过程的调用。
· java.sql.ResultSet接口——提供对结果集进行处理的手段。
JDBC Driver API 是面向驱动程序开发商的接口。对于大多数数据库驱动程序来说,仅仅实现JDBC API提供的抽象类就可以了。也就是说每一个驱动程序都必须提供对于java.sql.Connection、java.sql.Statement、java .sql.PreparedStatement和java.sql.ResultSet等主要接口的实现方法。假如目标DBMS提供有OUT参数的内嵌过程,那么还必须提供java.sql.CallableStatement 接口。每个数据库驱动程序必须提供一个java.sql.Driver类,使得系统可以由 java.sql.DriverManager来治理。
一个典型的驱动程序是在ODBC上提供对JDBC的实现接口,从而提供与ODBC接口的JDBC-ODBC桥,就像前面图1所显示的。由于JDBC放在ODBC之后,所以实现起来简单而且高效。