到OracleConnection的类型转换连接与Connection.unwrap(OracleConnection.



将java.sql.Connection类型转换为OracleConnection与从java.sql.Cnnection解包方法获得OracleConnection有何不同。

此外,如果我通过connection.unwrap(OracleConnection.class)创建OracleConnection,那么我应该最终关闭中的OracleConnection还是最终关闭中java.sql.connection。

这种差异有些微妙,但很有意义。

如果实际实现对象与声明的类不兼容,则ClassCastException的类型转换将失败。也就是说,如果实现不是OracleConnection,并且您尝试对其进行类型转换,则会得到异常。

使用unwrap(Class clazz)将尝试查找指定类型的对象并返回该对象,如果不可能,则使用SQLException失败。使用Wrapper接口方法的好处是,您可以使用isWrapperFor方法提前检查unwrap是否会成功。

相关内容

  • 没有找到相关文章

最新更新