模块  java.sql

Package java.sql

提供使用Java™编程语言访问和处理存储在数据源(通常是关系数据库)中的数据的API。 此API包含一个框架,可以动态安装不同的驱动程序以访问不同的数据源。 尽管JDBC™API主要用于将SQL语句传递给数据库,但它提供了使用表格格式从任何数据源读取和写入数据。 可以通过javax.sql.RowSet接口组获得读写器设施,以便使用和更新电子表格,平面文件或任何其他表格数据源中的数据。

JDBC [4.3] API包括什么

JDBCâ“4.3 API包括java.sql包(称为JDBC核心API)和javax.sql包(称为JDBC Optional Package API)。 这个完整的JDBC API包含在Java®“标准版(JavaSEâ”)版本7中javax.sql软件包将JDBC API的功能从客户端API扩展到服务器端API,它是一个Java™企业版(Java EE™)技术的重要组成部分。

版本

JDBC 4.3 API包含所有以前的JDBC API版本:
  • JDBC 4.2 API
  • JDBC 4.1 API
  • JDBC 4.0 API
  • JDBC 3.0 API
  • JDBC 2.1核心API
  • JDBC 2.0可选包API
    (请注意,JDBC 2.1核心API和JDBC 2.0可选包API一起称为JDBC 2.0 API。)
  • JDBC 1.2 API
  • JDBC 1.0 API

类,接口,方法,字段,构造函数和异常具有以下“since”标记,用于指示何时将它们引入Java平台。 当这些“since”标记用于JDBC API的Javadoc™注释时,它们表示以下内容:

  • 从9开始 - JDBC 4.3 API中的新增功能和Java SE平台的第9版
  • 从1.8开始 - JDBC 4.2 API中的新增内容和Java SE平台的一部分,版本8
  • 从1.7开始 - JDBC 4.1 API中的新增内容和Java SE平台的一部分,版本7
  • 从1.6 - JDBC 4.0 API中的新增内容和Java SE平台的一部分,版本6
  • 从1.4开始 - JDBC 3.0 API中的新增功能和J2SE平台的1.4版本
  • 从1.2开始 - JDBC 2.0 API和J2SE平台的新版本1.2
  • 从1.1或没有“自”标签 - 在原始的JDBC 1.0 API和部分JDKâ“¢,版本1.1中

注意:许多新功能是可选的; 因此,驱动程序和它们支持的功能存在一些差异。 在尝试使用之前,请务必检查驱动程序的文档以确定它是否支持该功能。

注意:SQLPermission已添加到SQLPermission SDK,标准版1.3版中。 此类用于防止未经授权访问与DriverManager关联的日志记录流,该日志流可能包含表名,列数据等信息。

java.sql包含什么

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

java.sqljavax.sql功能在JDBC 4.3 API中引入

  • 添加了Sharding支持
  • 增强型Connection能够向驾驶员提供一个请求,一个独立的工作单元开始或结束的提示
  • 增强DatabaseMetaData以确定是否支持Sharding
  • 添加方法driversDriverManager以返回当前加载和可用的JDBC驱动程序的Stream
  • 添加了对Statement支持,用于输入文字和简单标识符
  • 澄清了不推荐使用方法的Java SE版本

java.sqljavax.sql功能在JDBC 4.2 API中引入

  • 添加了JDBCType枚举和SQLType接口
  • 支持REF CURSORSCallableStatement
  • DatabaseMetaData方法返回最大逻辑LOB大小以及是否支持Ref游标
  • 添加了对大型更新计数的支持

java.sqljavax.sql功能在JDBC 4.1 API中引入

  • 允许ConnectionResultSetStatement与尝试,与资源语句中使用对象
  • 支持添加到CallableStatementResultSet以指定要通过getObject方法转换为的Java类型
  • DatabaseMetaData返回PseudoColumns的方法以及始终返回生成的键
  • 添加了对Connection支持,以指定数据库模式,中止和超时物理连接。
  • 添加了对其依赖对象关闭时关闭Statement对象的支持
  • 获得父记录器的支持DriverDataSourceConnectionPoolDataSourceXADataSource

java.sqljavax.sql功能在JDBC 4.0 API中引入

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

java.sqljavax.sql功能在JDBC 3.0 API中引入

  • 池化语句 - 重用与池化连接相关的语句
  • 保存点 - 允许将事务回滚到指定的保存点
  • ConnectionPoolDataSource定义的ConnectionPoolDataSource - 指定如何合并连接
  • PreparedStatement对象的参数的元数据
  • 能够从自动生成的列中检索值
  • 能够拥有多个ResultSet对象从返回CallableStatement对象在同一时间开
  • 能够按名称和索引标识CallableStatement对象的参数
  • ResultSet可保持性 - 指定在事务结束时游标应保持打开还是关闭的能力
  • 能够检索和更新Ref对象引用的SQL结构化类型实例
  • 能够编程方式更新BLOBCLOBARRAYREF值。
  • 添加java.sql.Types.DATALINK数据类型 - 允许JDBC驱动程序访问存储在数据源外部的对象
  • 添加用于检索SQL类型层次结构的元数据

java.sql功能在JDBC 2.1 Core API中引入

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

javax.sql功能在JDBC 2.0 Optional Package API中引入

  • DataSource接口作为连接的一种手段。 Java命名和目录接口(JNDI)用于向命名服务注册DataSource对象,也用于检索它。
  • 池连接 - 允许使用和重用连接
  • 分布式事务 - 允许事务跨越不同的DBMS服务器
  • RowSet技术 - 提供处理和传递数据的便捷方法

UDT的自定义映射

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

当这些适用于UDT时,在该UDT上调用方法ResultSet.getObjectCallableStatement.getObject将自动检索它的自定义映射。 此外, PreparedStatement.setObject方法将自动将对象映射回其SQL类型以将其存储在数据源中。

包装规格

相关文档