java.sql

接口
异常
提供使用 Java TM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。

请参见:
          描述

接口摘要
Array SQL 类型 ARRAY 在 Java 编程语言中的映射关系。
Blob SQL BLOB 值在 JavaTM 编程语言中的表示形式(映射关系)。
CallableStatement 用于执行 SQL 存储过程的接口。
Clob SQL 类型 CLOB 在 JavaTM 编程语言中的映射关系。
Connection 与特定数据库的连接(会话)。
DatabaseMetaData 关于数据库的整体综合信息。
Driver 每个驱动程序类必须实现的接口。
NClob SQL NCLOB 类型在 JavaTM 编程语言中的映射。
ParameterMetaData 可用于获取关于 PreparedStatement 对象中每个参数标记的类型和属性信息的对象。
PreparedStatement 表示预编译的 SQL 语句的对象。
Ref Java 编程语言中 SQL REF 值的映射关系,它是到数据库中的 SQL 结构类型值的引用。
ResultSet 表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
ResultSetMetaData 可用于获取关于 ResultSet 对象中列的类型和属性信息的对象。
RowId SQL ROWID 值在 Java 编程语言中的表示形式(映射)。
Savepoint 保存点的表示形式,保存点是可以从 Connection.rollback 方法引用的当前事务中的点。
SQLData 该接口用于 SQL 用户定义类型 (UDT) 到 Java 编程语言中类的自定义映射关系。
SQLInput 一个输入流,它包含表示 SQL 结构化类型或 SQL 不同类型的实例的值组成的流。
SQLOutput 用于将用户定义类型的属性写回数据库的输出流。
SQLXML SQL XML 类型在 JavaTM 编程语言中的映射关系。
Statement 用于执行静态 SQL 语句并返回它所生成结果的对象。
Struct 用于 SQL 结构化类型的 Java 编程语言中的标准映射关系。
Wrapper 在相关实例实际上是代理类时提供获取委托实例能力的 JDBC 类的接口。
 

类摘要
Date 一个包装了毫秒值的瘦包装器 (thin wrapper),它允许 JDBC 将毫秒值标识为 SQL DATE 值。
DriverManager 管理一组 JDBC 驱动程序的基本服务。
DriverPropertyInfo 用于建立连接的驱动程序属性。
SQLPermission SecurityManager 将用来检查在 applet 中运行的代码何时调用 DriverManager.setLogWriter 方法或 DriverManager.setLogStream(不建议使用)方法的权限。
Time 一个与 java.util.Date 类有关的瘦包装器 (thin wrapper),它允许 JDBC 将该类标识为 SQL TIME 值。
Timestamp 一个与 java.util.Date 类有关的瘦包装器 (thin wrapper),它允许 JDBC API 将该类标识为 SQL TIMESTAMP 值。
Types 定义用于标识一般 SQL 类型(称为 JDBC 类型)的常量的类。
 

枚举摘要
ClientInfoStatus 无法通过调用 Connection.setClientInfo 设置属性的原因状态的枚举。
RowIdLifetime RowId 生存期值的枚举。
 

异常摘要
BatchUpdateException 进行批量更新操作期间发生错误时抛出的 SQLException 子类。
DataTruncation DataTruncation 异常形式抛出的异常(写入时),或者由于除数据值超出 MaxFieldSize 之外的某种原因意外地截断该数据值时以 DataTruncation 警告形式报告的异常(读取时)。
SQLClientInfoException 当无法在 Connection 上设置一个或多个客户端信息属性时,抛出此 SQLException 的子类。
SQLDataException 当 SQLState 类值为“22”时抛出的 SQLException 子类。
SQLException 提供关于数据库访问错误或其他错误信息的异常。
SQLFeatureNotSupportedException 当 SQLState 类值为“0A”(值为“零”A)时抛出的 SQLException 子类。
SQLIntegrityConstraintViolationException 当 SQLState 类值为“23”时抛出的 SQLException 子类。
SQLInvalidAuthorizationSpecException 当 SQLState 类值为“28”时抛出的 SQLException 子类。
SQLNonTransientConnectionException SQLState 类值为“08”时抛出的 SQLException 子类,表示在失败原因没有纠正的情况下重试操作时,失败的连接操作不会成功。
SQLNonTransientException 重试相同操作将失败(除非纠正了 SQLException 的 cause)的情况下抛出的 SQLException 子类。
SQLRecoverableException 应用程序执行某些恢复步骤并重试整个事务或事务分支(在分布式事务中)后,可以成功执行先前失败操作的情况下抛出的 SQLException 子类。
SQLSyntaxErrorException 当 SQLState 类值为“42”时抛出的 SQLException 子类。
SQLTimeoutException Statement 指定的超时已到期时抛出的 SQLException 子类。
SQLTransactionRollbackException 当 SQLState 类值为“40”时,抛出此 SQLException 的子类。
SQLTransientConnectionException SQLState 类值为“08”时抛出的 SQLException 子类,表示在没有进行任何应用程序级更改的情况下重试操作时,失败的连接操作可以成功。
SQLTransientException 没有任何应用程序级功能干预时,重试先前失败操作可以成功的情况下抛出的 SQLException 子类。
SQLWarning 提供关于数据库访问警告信息的异常。
 

软件包 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 类型,以便将它存储在数据源中。

包规范

相关文档

从以下版本开始:
1.1