jdbc_API中的说明

软件包 java.sql 的描述

提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。此 API 包括一个框架,凭借此框架可以动态地安装不同驱动程序来访问不同数据源。尽管 JDBCTM API 主要用于将 SQL 语句传递给数据库,但它还可以用于以表格方式从任何数据源中读写数据。通过接口的 javax.sql.RowSet 组可以使用的 reader/writer 实用程序,可以被定制以使用和更新来自电子表格、纯文本文件或其他任何表格式数据源的数据。

JDBCTM 4.0 API 中包括的内容

JDBC TM 4.0 API 中包括 java.sql 包,被称为 JDBC 核心 API,和 javax.sql 包,被称为 JDBC Optional Package API。完整的 JDBC API 包含在 Java TM 标准版 (Java SE TM) 6 版中。 javax.sql 包扩展了 JDBC API 的功能,将它从客户端 API 扩展到服务器端 API,该包是 Java TM、企业版 (Java TM) 技术的重要部分。

版本

JDBC 4.0 API 综合了以前所有 JDBC API 版本:
  • JDBC 3.0 API
  • JDBC 2.1 核心 API
  • JDBC 2.0 Optional Package API
    (注意,JDBC 2.1 核心 API 和 JDBC 2.0 Optional Package API 组合在一起被称为 JDBC 2.0 API。)
  • The JDBC 1.2 API
  • The JDBC 1.0 API

类、接口、方法、字段、构造方法和异常都有以下 "since" 标记,以指示它们何时被引入 Java 平台。当将这些 "since" 标记用于 JDBC API 的 JavadocTM 注释时,它们指示以下内容:

  • Since 1.6:JDBC 4.0 API 中的新内容和 Java SE 平台 6 版的部分内容
  • Since 1.4:JDBC 3.0 API 中的新内容和 J2SE 平台 1.4 版的部分内容
  • Since 1.2:JDBC 2.0 API 中的新内容和 J2SE 平台 1.2 版的部分内容
  • Since 1.1 或者没有 "since" 标记:原始 JDBC 1.0 API 和 JDKTM 1.1 版的部分内容

注:许多新特性都是可选的,因此,在这些版本支持的驱动程序和特性中有一些变体。在尝试使用它之前,总是检查驱动程序的文档,以查看它是否支持某一特性。

注:SQLPermission 类被添加到 JavaTM 2 SDK 标准版 1.3 版中。此类用于防止对与 DriverManager 相关联的记录流进行无授权访问,该流可以包含诸如表名称、列数据等信息。

java.sql Package 包含的内容

java.sql 包中包含用于以下方面的 API:
  • 通过 DriverManager 实用程序建立与数据库的连接
    • DriverManager 类:建立与驱动程序的连接
    • SQLPermission 类:当代码在 Security Manager(比如 applet)中运行时提供权限,试图通过 DriverManager 设置一个记录流
    • Driver 接口:提供用来注册和连接基于 JDBC 技术(“JDBC 驱动程序”)的驱动程序的 API,通常仅由 DriverManager 类使用
    • DriverPropertyInfo 类:提供 JDBC 驱动程序的属性,不是供一般用户使用的
  • 向数据库发送 SQL 语句
    • Statement:用于发送基本 SQL 语句
    • PreparedStatement:用于发送准备好的语句或基本 SQL 语句(派生自 Statement
    • CallableStatement:用于调用数据库存储过程(派生自 PreparedStatement
    • Connection 接口:提供创建语句以及管理连接及其属性的方法
    • Savepoint:在事务中提供保存点
  • 获取和更新查询的结果
    • ResultSet 接口
  • SQL 类型到 Java 编程语言中的类和接口的标准映射关系
    • Array 接口:SQL ARRAY 的映射关系
    • Blob 接口:SQL BLOB 的映射关系
    • Clob 接口:SQL CLOB 的映射关系
    • Date 类:SQL DATE 的映射关系
    • NClob 接口:SQL NCLOB 的映射关系
    • Ref 接口:SQL REF 的映射关系
    • RowId 接口:SQL ROWID 的映射关系
    • Struct 接口:SQL STRUCT 的映射关系
    • SQLXML 接口:SQL XML 的映射关系
    • Time 类:SQL TIME 的映射关系
    • Timestamp 类:SQL TIMESTAMP 的映射关系
    • Types 类:提供用于 SQL 类型的常量
  • 自定义映射 SQL 用户定义类型 (UDT) 到 Java 编程语言中的类
    • SQLData 接口:指定 UDT 到此类的一个实例的映射关系
    • SQLInput 接口:提供用来从流中读取 UDT 属性的方法
    • SQLOutput 接口:提供用来将 UDT 属性写回流中的方法
  • 元数据
    • DatabaseMetaData 接口:提供有关数据库的信息
    • ResultSetMetaData 接口:提供有关 ResultSet 对象的列的信息
    • ParameterMetaData 接口:提供有关 PreparedStatement 命令的参数的信息
  • 异常
    • SQLException:由大多数方法在访问数据出问题时抛出,以及因为其他原因由其他一些方法抛出
    • SQLWarning:为了指示一个警告而抛出
    • DataTruncation:为了指示数据可能已经被截断而抛出
    • BatchUpdateException:为了指示并不是批量更新中的所有命令都成功执行而抛出

JDBC 4.0 API 中引入的 java.sqljavax.sql 特性

  • 自动 java.sql.Driver 发现:不再需要通过 Class.forName 来加载 java.sql.Driver
  • 添加了国家字符集 (National Character Set) 支持
  • 为 SQL:2003 XML 数据类型添加的支持
  • SQLException 增强:为原因链添加的支持;为公用 SQLState 类值代码添加新 SQLException
  • 增强的 Blob/Clob 功能:提供创建和释放 Blob/Clob 实例以及为了提高可访问性所添加的一些其他方法
  • 为访问 SQL ROWID 添加的支持
  • 添加的支持,允许 JDBC 应用程序访问已被供应商包装的 JDBC 资源实例,通常在一个应用程序服务器或连接池环境中。
  • 当与 PooledConnection 关联的 PreparedStatement 已关闭或驱动程序确定为无效时要通知的可用性

JDBC 3.0 API 中引入的 java.sqljavax.sql 特性

  • 入池语句 (pooled statement):重新使用与某个已入池的连接 (pooled connection) 相关的语句
  • 保存点:允许将事务回滚到某一指定保存点
  • ConnectionPoolDataSource 定义的属性:指定将连接入池的方法
  • PreparedStatement 对象的参数的元数据
  • 从自动生成的列中获取值的能力
  • 使从 CallableStatement 对象中返回的多个 ResultSet 对象同时打开的能力
  • 通过名称和索引标识 CallableStatement 对象的参数的能力
  • ResultSet 可保存性:指定是否应该让游标在某一事务结束时保持打开或关闭状态的能力
  • 获取和更新 Ref 对象引用的 SQL 结构化类型实例的能力
  • 通过编程方式更新 BLOBCLOBARRAYREF 值的能力。
  • java.sql.Types.DATALINK 数据类型的添加:允许 JDBC 驱动程序访问数据源以外的地方存储的对象
  • 用于获取 SQL 类型分层结构的元数据的添加

JDBC 2.1 Core API 中引入的 java.sql 特性

  • 可滚动的结果集:使用 ResultSet 接口中的新方法,这些方法允许将光标移动到某一特定行,或者移动到其当前位置的某一相对位置
  • 批量更新
  • 编程式更新:使用 ResultSet updater 方法
  • 新数据类型:映射 SQL3 数据类型的接口
  • 用户定义类型 (UDT) 的自定义映射关系
  • 其他特性,包括性能提示、字符流的使用、java.math.BigDecimal 值的完全精度、其他安全性,以及对日期、时间和时间戳值中的时区的支持。

JDBC 2.0 Package API 中引入的 javax.sql 特性

  • DataSource 接口被认为是建立连接的一种方式。Java Naming 和 Directory InterfaceTM (JNDI) 用于向命名服务注册一个 DataSource 对象和获取该对象。
  • 入池连接:允许使用和重新使用连接
  • 分布式事务:允许事务跨越不同的 DBMS 服务器
  • RowSet 技术:提供一个处理和传递数据的便捷方法

UDT 的自定义映射关系

可以将 SQL 中定义的用户定义类型 (UDT) 映射到 Java 编程语言中的类。SQL 结构化类型或 SQL DISTINCT 类型是可以自定义映射的 UDT。以下三个步骤设置了一个自定义映射关系:
  1. 在 SQL 中定义 SQL 结构化类型或 DISTINCT 类型
  2. 定义 Java 编程语言中的类,SQL UDT 将映射到该类。此类必须实现 SQLData 接口。
  3. Connection 对象的类型映射表中创建一个项,该项包含两项内容:
    • UDT 的完全限定 SQL 名称
    • 实现 SQLData 接口的类的 Class 对象

为 UDT 准备好这些之后,在该 UDT 上调用 ResultSet.getObjectCallableStatement.getObject 方法将自动获取该 UDT 的自定义映射关系。此外,PreparedStatement.setObject 方法会自动将该对象映射回其 SQL 类型,以便将它存储在数据源中。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值