我无法找到 JDBC 4.2 的使用示例新界面DriverAction
和 SQLType
。
谁能给我举个例子吗?
最佳答案
DriverAction
DriverAction
仅与驱动程序实现相关,如果该驱动程序希望在驱动程序被取消注册时收到通知(例如释放资源或执行其他清理操作),作为 JDBC 的最终用户,您与它无关。
如文档中所述,其目的是:
An interface that must be implemented when a
Driver
wants to be notified byDriverManager
.A
DriverAction
implementation is not intended to be used directly by applications. A JDBC Driver may choose to create itsDriverAction
implementation in a private class to avoid it being called directly.
(强调我的)
SQLType
了解SQLType
你首先需要查看枚举 JDBCType
。这是一个声明与 java.sql.Types
中相同的 JDBC 类型的枚举。 ,但随后作为枚举对象。该枚举实现SQLType
。添加接口(interface) SQLType
允许驱动程序实现为 JDBC 中未定义的驱动程序或数据库特定类型添加类似的类型安全枚举。
它被用于 - 例如 - PreparedStatement.setObject(int, Object, SQLType)
相当于 PreparedStatement.setObject(int, Object, int)
.
您可能会问这添加了什么?首先,它对于类型安全来说更好。过去,驱动程序为数据库特定类型分配类似于 java.sql.Types 的整数,这些整数可能与较新的 JDBC 版本中添加的类型代码发生冲突。其次,当您提供不支持的类型时,它可能允许更易读的诊断(例如,它可以显示“不支持的类型 XYZ(供应商:MyXYZDB)”,而不是“不支持的类型 -1233”) > 使用 getName
和 getVendor
)方法,最后(也是类型安全的一种形式)它可以防止用户在数据库品牌 Y 中错误地使用数据库品牌 X 的类型代码(或者至少:允许驱动程序检测到这种错误的使用)。
也就是说:我认为对于 JDBC 的最基本和常规用法来说,这个接口(interface)并没有增加太多。
关于java - JDBC 4.2 接口(interface) DriverAction 和 SQLType - 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23934260/