Module  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可选包API。 这个完整的JDBC API包含在Java标准版(Java SE)中,第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”标签用于Javadoc对JDBC API的注释时,它们表示如下:

  • 由于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类已添加到Java¢2 SDK,Standard Edition,1.3版本中。 此类用于防止未经授权的访问与DriverManager相关联的日志记录流,其可能包含诸如表名,列数据等信息。

什么是java.sql包含

java.sql包包含以下API:
  • 通过DriverManager工具与数据库建立连接
    • DriverManager类 - 与驱动程序建立连接
    • SQLPermission类 - 在安全管理器(如小程序)中运行的代码尝试通过DriverManager设置日志记录流时提供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 interface - 指定UDT与此类的实例的映射
    • SQLInput接口 - 提供从流中读取UDT属性的方法
    • SQLOutput接口 - 提供将UDT属性写回流的方法
  • 元数据
    • DatabaseMetaData接口 - 提供有关数据库的信息
    • ResultSetMetaData接口 - 提供有关ResultSet对象的列的信息
    • ParameterMetaData接口 - 提供有关PreparedStatement命令的参数信息
  • 例外
    • SQLException - 由于其他原因存在访问数据时遇到问题和某些方法,大多数方法抛出
    • SQLWarning - 抛出以指示警告
    • DataTruncation - 抛出以指示数据可能已被截断
    • BatchUpdateException - 抛出以表示批处理更新中的所有命令都不会成功执行

java.sqljavax.sql在JDBC 4.3 API中javax.sql功能

  • 添加Sharding支持
  • 增强Connection能够向驾驶员提供一个请求,一个独立的工作单位开始或结束的提示
  • 增强型DatabaseMetaData以确定是否支持Sharding
  • 将方法drivers添加到DriverManager以返回当前加载和可用的JDBC驱动程序的Stream
  • 增加对Statement支持,以引用文字和简单标识符
  • 澄清Java SE版本的方法已被弃用

java.sqljavax.sql JDBC 4.2 API中介绍的功能

  • 增加了JDBCType枚举和SQLType界面
  • 支持REF CURSORSCallableStatement
  • DatabaseMetaData返回最大逻辑LOB大小的方法,如果支持参考光标
  • 增加了对大型更新计数的支持

java.sqljavax.sql在JDBC 4.1 API中javax.sql功能

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

java.sqljavax.sql在JDBC 4.0 API中javax.sql功能

  • 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中javax.sql功能

  • 池化语句 - 重用与池化连接相关联的语句
  • 保存点 - 允许将事务回滚到指定的保存点
  • ConnectionPoolDataSource定义的ConnectionPoolDataSource - 指定如何合并连接
  • PreparedStatement对象参数的元数据
  • 能够从自动生成的列中检索值
  • 能够拥有多个ResultSet对象从返回CallableStatement对象在同一时间开
  • 能够通过名称和索引来识别参数到CallableStatement对象
  • ResultSet可保持性 - 指定游标在事务结束时是否应该保持打开或关闭的能力
  • 能够检索和更新Ref对象引用的SQL结构化类型实例
  • 能够编程方式更新BLOBCLOBARRAY ,并REF值。
  • 添加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可选软件包API中javax.sql功能

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

UDT的自定义映射

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

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

包装规格

相关文档