JDBC API 4.2(十一):java.sql.Wrapper 接口源码分析

1、简介

java.sql.Wrapper 是 JDBC 的接口,当相关实例实际上是代理类时,该接口提供检索委托实例的功能。

许多 JDBC 驱动程序实现使用包装器模式提供超越传统 JDBC API 的扩展功能,传统 JDBC API 是特定于数据源的。开发人员可能希望访问那些被包装(代理)为代表实际资源代理类实例的资源。

此接口描述了一种标准机制,用于访问那些由代理代表的包装资源的标准机制,以允许对资源代理的直接访问。

2、源码

这个接口只定义了两个方法,下面我们分别学习一下这两个方法的功能

2.1、 T unwrap(java.lang.Class iface)

返回一个实现给定接口的对象,以允许访问非标准方法或代理未公开的标准方法。

如果接收者实现了该接口,那么结果是接收者或接收者代理。

如果接收者是包装器且包装对象实现了该接口,那么结果是包装对象或包装对象的代理。否则,返回对该包装对象或该结果的代理进行递归调用的结果。

如果接收者不是包装器且未实现该接口,则抛出 sqlexception。

参数:

iface - 定义结果必须实现的接口的 class。

返回值:

一个实现接口的对象。 可能是实际实现对象的代理。

2.2、boolean isWrapperFor(java.lang.Class<?> iface)

如果此方法实现了接口参数,或者直接或间接地对该对象进行了包装,则返回true。 否则返回false。

如果实现了接口,那么返回true,否则如果这是一个包装器,那么返回在包装对象上递归调用isWrapperFor的结果。

如果不实现接口并且不是包装器,则返回false。

与 unwrap 相比,此方法应作为一种低成本操作来实现,以便调用者可以使用此方法来避免可能失败的昂贵的 unwrap 调用。 如果此方法返回true,则使用相同参数调用unwrap应该会成功。

参数:

iface - 定义接口的类。

返回值:

如果这实现了接口,或者直接或间接地包装了一个对象,则为true。

3、接口 java.sql.Wrapper 的使用

3.1、使用 Wrapper 的软件包

java.sql 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。 
javax.sql 为通过 JavaTM 编程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值