Ø ConnectionPoolDataSource接口
Public interface ConnectionPoolDataSource
接口功能
ConnectionPoolDataSource接口定义了获得PooledConnection连接的方法。在JDBC3.0中ConnectionPoolDataSource接口定义了几个标准的连接池属性。开发人员并不需要直接用API去修改这些属性,而通过应用服务器或数据库存储设备来实现。由于开发人员只会间接地被连接池属性的标准化所影响,所以有利之处并不明显。然而,通过减少厂商特定设置的属性的数量并用标准化的属性来代替,开发人员能更容易地在不同厂商的JDBC驱动程序之间进行交换。另外,这些属性还允许管理员很好地优化连接池,从而应用程序性能特点发挥到极致。
Ø DataSource接口
public interface DataSource
接口功能
DataSource接口提供了建立数据库连接的另外一种途径。该接口由不同的驱动程序实现。与DriverManager类要求驱动程序必须在该类上注册不同,DataSource对象是通过基于JNDI命名和目录服务的查找操作而获得的。代码如下:
//get the initial JNDI naming context
Context ctx=new InitialContext();
//get the DataSource object associated with the logical name”jdbc/ACmeDB” and use it to obtain a //database connection
DataSource ds=(DataSource)ctx..lookup(“jdbc/ACmeDB”);
Connection con=ds.getConnection(“user”,”pwd”);
用DataSource接口取代DriverManager类来建立数据库连接可实现连接池机制,提高连接的效率及可伸缩性。DataSource对象提供了根据不同的需要可进行修改的属性,增强了程序的健壮性。
Ø PooledConnection接口
public interface PooledConnection
接口功能
PooledConnection接口表示应用程序与数据库之间的物理连接,该连接可能重复利用,不必像Connection对象一样必须在连接使用结束时调用close方法关闭连接。这样大大减少了创建Connection对象的数目,可以降低系统开销。
Ø RowSet接口
public interface RowSet extends ResultSet
接口功能
RowSet接口扩展了ResultSet,RowSet可以由应用程序直接生成实例,而ResultSet由执行查询语句的方法返回。
ResultSet对象中的数据通常都保存在数据库中,直到游标指向当前行,而RowSet对象将其执行SQL语句所得到的数据全部读取到内存中。这样做的优点有如下几点:
1. RowSet连接数据库的时间只是执行SQL语句时记取记录的时间,而ResultSet则要在关闭ResultSet之前一直保持打开的数据库连接。
2. RowSet对象封装的内容可以序列化并存放在磁盘文件中,或是在网络上传输。
3. 由于RowSet中的数据都存放在内存中,可以按任何顺序访问,从而实现可滚动结果集。RowSet还提供了供修改数据的updateXXX方法,因此,还可以通过RowSet对象实现更新的结果集。
4. 在插入数据,改变数据或移动游标时会产生RowSetEvent事件,通知监听器RowSet对象的变化。