Posted on 2012-03-03 19:22
cuicn 阅读(42)
评论(0) 编辑 收藏
JDBC是java数据库连接性API,它允许用户从Java应用程序中访问任何表格化数据源。JDBC除了提供到更宽范围的SQL数据库的连接外,也允许用户访问其他的表格数据源,如电子表格。
JDBC定义了一个底层的API,用来支持独立于任何特定SQL实现的基本SQL功能。这意味着重要的是执行原SQL语句,然后检索他们的结果。
JDBC 2.0 API包括两个包:java.sql和javax.sql。他们合在一起,包含了用Java开发数据库应用程序所需的类。作为Java2平台,JDBC在任何运行Java的平台上都是可用的。
JDBC3.0规范,引入了几个特性,包括支持各种数据类型,附加的元数据能力,并增加了大量的接口。
JDBC主要特点是与任何关系型数据库协同工作的方式完全相同。没有必要写一个程序访问oracle,写另一个程序访问mysql等等。JDBC在许多不同数据库连接模块的顶端提供了统一的接口。使用JDBC写的程序可以用来创建与任何关系型数据库的SQL接口。
JDBC的三种主要功能:
1、建立与数据库或其他表列数据源的连接
2、向数据源发送SQL命令
3、处理结果
访问数据源的主要步骤:
1、 装载一个JDBC驱动程序
2、 获得与数据库的连接
3、 创建一条语句
4、 执行SQL查询
5、 从ResultSet中检索数据
ResultSet提供了在结果中循环所必须的方法,和使用适合于自己类型的方法获得各自数据库字段。
JDBC API在SQL数据类型和Java/JDBC数据类型之间定义了标准的映射。
JDBC API可以直接从应用程序中使用,或者作为多层服务器应用程序一部分使用。
SQL的一致性:
尽管SQL是访问关系型数据库的标准语言,但是不同的数据库系统支持不同的SQL语法这些区别从次要细节--SQL语句是否需要结束符(;),到大的变化--例如缺乏对存储过程或加入到数据库系统中某些类型的支持。
另一个重要区别是许多数据库系统提供大量的没有包含高级功能的SQL标准。这些高级特性在不同数据库系统中有不同的实现方式。JDBC API设计的一个非常重要的需求是它必须支持SQL,因为它不只限于标准的定义的那样。
JDBC API处理该问题的一种方式是允许将SQL String传送到底层DBMS驱动程序。结果是许多数据库管理系统对一些命令返回错误响应。
JDBC API支持将任意SQL String通过回避机制传送到数据库管理系统。例如,对于数据和存储过程调用有许多回避机制。
另一种附加的支持机制由DatabaseMetaData接口提供,该接口提供了DBMS的描述性信息。这在跨平台应用中尤为有用,它有助于使应用程序适合于不同的数据库管理系统的需求和能力。
JDBC兼容性:
SUN创建了JDBC兼容性定义,用来表示可以依赖于提供商的JDBC实现来遵守JDBC功能的标准层。在提供商使用该定义之前,提供商的驱动程序必须通过Sun的JDBC一致性测试
java.sql.Driver方法jdbcCompliant()报告驱动程序是否满足JDBC兼容性。当调用该方法时,如果它通过了JDBC兼容性测试,驱动程序可能只报告true,反正false。
Sun定义了一下三种JDBC兼容等级:
JDBC1.0API兼容性,要求实现一下接口:
>java.sql.Driver
>java.sql.DataBaseMetaData
>java.sqlResultSetMetaData
>java.sql.Connection
>java.sql.Statement
>java.sql.CallableStatement
>java.sql.PreparedStatement
>java.sql.ResultSet
JDBC2.0 API兼容性要求:
>JDBC1.0 API兼容性要求
>JDBC2.0中定义的数据库元数据接口扩展的完整实现
>附加JDBC2.0 ResultSet方法实现
JDBC 3.0 API 兼容性要求:
>JDBC 2.0 API兼容性
>java.sql.Parameter元数据的实现
>java.sql.Savepoint的实现
>JDBC3.0中定义的数据库元数据接口扩展的完整实现
驱动程序开发人员可以通过使用JDBC API可用的测试组来确定他们的驱动程序是否满足JDBC兼容性标准。