<div> JavaScript is disabled on your browser.
Skip navigation links
Java™ Platform
Standard Ed. 8
compact3

Package javax.sql

提供了对服务器端数据源的访问和处理来自 TM java编程语言的API。

See: 描述

Package javax.sql Description

提供了对服务器端数据源的访问和处理来自 TM java编程语言的API。这个包补充包和 java.sql,作为1.4版本,包括在java平台,标准版(java SE TM)。这是java平台的一个重要组成部分,企业版(java EE TM)。

javax.sql包提供了以下:

  1. DataSource接口作为一种替代的DriverManager用于建立与数据源的连接
  2. 连接池和语句池
  3. 分布式事务
  4. 行集

应用程序使用DataSourceRowSet API直接,但连接池和分布式事务API由中间层基础设施内部使用。

使用DataSource对象进行连接

javax.sql包提供给数据源连接的首选方法。的 DriverManager类,原有的机制,仍然是有效的,和代码使用它将继续运行。然而,新的 DataSource机制是首选,因为它提供了许多优点 DriverManager机制。

这些都是用DataSource对象做一个连接的主要优点:

驱动程序供应商提供DataSource实现。一个特定的DataSource对象代表一个特定的物理数据源,每个连接的DataSource对象创建是一个物理数据源连接。

对数据源的逻辑名称注册,命名服务,使用java命名和目录interfaceTM(JNDI)API,通常由系统管理员或有人进行系统管理员的职责。应用程序可以通过查找的逻辑名称,已注册的对象要DataSource检索。然后,应用程序可以使用DataSource对象创建一个物理数据源是连接。

一个DataSource对象可以实现工作与中间层的基础设施使它产生的连接将汇集重用。使用这种DataSource实现应用程序将自动获得参与在连接池中的连接。一个DataSource对象也可以实现工作与中间层的基础设施,所以它产生的连接可用于分布式事务,没有任何特殊的编码。

连接池和语句池

连接通过一个 DataSource对象,实现了与中间层的连接池管理工作将参与连接池。这可以显着提高性能,因为创建新的连接是非常昂贵的。连接池允许一个连接被使用和重用,从而大大减少了需要创建的新连接的数量。

连接池是完全透明的。这是一个java EE配置中间层自动完成的,因此从应用的角度来看,不需要更改代码。应用程序只使用DataSource.getConnection方法得到的池连接并使用它以同样的方式使用任何Connection对象。

用于连接池的类和接口是:

连接池管理器,在一个三层体系结构的中间层的一种设备,使用这些类和幕后的接口。当一个 ConnectionPoolDataSource对象上调用创建一个 PooledConnection对象,连接池管理器将登记作为一个新的 PooledConnection对象 ConnectionEventListener对象。当连接关闭或有错误,连接池管理器(是一个听众)得到通知,包括 ConnectionEvent对象。

如果连接池管理器支持Statement池,为PreparedStatements,这可以通过调用方法DatabaseMetaData.supportsStatementPooling确定,连接池管理器将登记作为一个新的PooledConnection对象StatementEventListener对象。当PreparedStatement关闭或有错误,连接池管理器(是一个听众)得到通知,包括StatementEvent对象。

分布式事务

与池连接,连接通过一个 DataSource对象,实现了与中间层基础工作可能参与分布式事务。这给出了一个应用程序的能力,涉及到多个服务器上的数据源在一个单一的交易。

用于分布式事务的类和接口是:

这些接口由事务管理器的使用;应用程序不直接使用它们。

XAConnection接口是来自PooledConnection接口,因此适用于池连接也适用于连接,分布式事务的一部分。中间层的事务管理器可以透明地处理一切事务。应用程序代码中唯一的更改是,应用程序不能做任何会干扰事务管理器处理事务的任何事务。具体而言,应用程序不能调用方法Connection.commitConnection.rollback,不能设置连接是在自动提交模式(即,它不能叫Connection.setAutoCommit(true))。

一个应用程序不需要做任何特殊的事情来参与一个分布式事务。它简单的创建连接到数据源,它希望通过使用DataSource.getConnection方法,只是像往常一样。事务管理器管理幕后的事务。的XADataSource创建界面XAConnection对象,每个对象创建一个XAConnection XAResource对象事务管理器用来管理连接。

行集

RowSet接口与各种其他类和幕后的接口。这些可以分为三类。
  1. 事件通知
    • RowSetListener
      RowSet对象是javabeansTM组件因为它有属性和参与JavaBeans事件通知机制。的RowSetListener接口所组成,要通知有关所发生的特定事件RowSet对象实现。这样的一个组成部分,将自身注册为一个通过RowSet.addRowSetListener法行集的听众。

      RowSet对象改变它的一个排,改变这一切的行,或移动光标,并通知侦听器注册它。侦听器通过执行调用它的通知方法的实现而作出反应。

    • RowSetEvent
      作为其内部通知的过程的一部分,一个RowSet对象创建RowSetEvent实例并将其传递给听众。听众可以利用这RowSetEvent对象找出行集有事件。

  2. 元数据
    • RowSetMetaData
      这个接口,从ResultSetMetaData接口,提供了一RowSet对象的列的信息。应用程序可以使用RowSetMetaData方法找出多少列行集包含什么样的数据每一列可以包含。

      RowSetMetaData界面提供设置列的信息的方法,但应用通常不会使用这些方法。当应用程序调用的方法的RowSet executeRowSet对象将包含一个新的行的集合,其RowSetMetaData对象将被内部更新包含新列的信息。

  3. 读者/作者facility
    一个实现了RowSetInternal接口可以与它填充数据本身的RowSetReader对象RowSet对象。它也呼吁RowSetWriter对象相关联的任何更改其行写回数据源从它最初就行。一个数据集,保持连接到数据源不需要使用读写器因为它可以操作数据源直接。
    • 通过实施RowSetInternal接口RowSetInternal
      ,一RowSet对象获取其内部状态和能够调用其读者和作家。一个数据集记录的值在当前行的值之前的,称为起初的值。一个数据集还可以跟踪(1)的参数已设置为它的命令和(2)的连接,通过它,如果任何。一个数据集使用RowSetInternal方法在幕后得到这样的信息。一个应用程序通常不直接调用这些方法。

    • RowSetReader
      断开RowSet对象,实现了RowSetInternal界面可以调用它的读者(与它相关的RowSetReader对象)用数据填充它。当应用程序调用的RowSet.execute方法,方法调用的行集的读者做很多工作。实现可以千差万别,但一般读者是连接到数据源,读取数据源中的数据填充数据集时,和关闭连接。读者也可以更新自己的RowSetMetaData行集对象。该行的内部状态也更新了,无论是读者或直接的方法RowSet.execute
    • RowSetWriter
      断开RowSet对象,实现了RowSetInternal界面可以调用它的作者(与它相关的RowSetWriter对象)写回数据源的变化。实现可能千差万别,但一般来说,一个作家要做到以下几点:

      • 与数据源连接
      • 检查是否存在冲突,即值是否已更改的行集也已在数据源发生变化
      • 如果没有冲突,将新的值写入数据源
      • 关闭连接

RowSet接口可以在任何数量的方式实现,任何人都可以写一个实现。鼓励开发人员想出新的方法来使用行集使用他们的想象力。

重要注意事项:代码使用API标志着“自1.6”必须运行使用JDBC技术驱动实现了JDBC 4 API。您必须检查您的驱动程序文档,以确保它实现了您要使用的特定功能。

包装规格

相关文件

艾迪生卫斯理朗文出版的系列书提供了关于java的 javax.sql封装的类和接口的详细信息:

从以下版本开始:
1.4
Skip navigation links
Java™ Platform
Standard Ed. 8

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.

本帮助文档是使用 《百度翻译》翻译,请与英文版配合使用 by--QQ:654638585