我无法找到JDBC 4.2新接口DriverAction
和SQLType
的使用示例。
有谁能举个例子?
答案 0 :(得分:4)
DriverAction
DriverAction
仅与驱动程序实现相关,如果该驱动程序想要通知驱动程序是否已取消注册(例如,释放资源或执行其他清理操作),则作为JDBC的最终用户与此无关。
其目的是,如文档中所述:
Driver
希望DriverManager
通知时必须实施的界面。
DriverAction
实施不打算由应用程序直接使用。 JDBC驱动程序可以选择在私有类中创建其DriverAction
实现,以避免直接调用它。
(强调我的)
SQLType
要了解SQLType
,首先需要查看枚举JDBCType
。这是一个枚举,它声明与java.sql.Types
中相同的JDBC类型,但是作为枚举对象。此枚举实现了SQLType
。添加接口SQLType
允许驱动程序实现为JDBC中未定义的驱动程序或数据库特定类型添加类似的类型安全枚举。
在[{3}}中使用它作为PreparedStatement.setObject(int, Object, SQLType)
的等价物。
你可能会问这个增加了什么?首先,它对于类型安全更好。在过去,驱动程序分配了java.sql.Types
- 类似于数据库特定类型的整数,这些类型可能与在较新的JDBC版本中添加的类型代码冲突。其次,当您提供不受支持的类型时,它可能允许更可读的诊断(例如,而不是“不支持的类型-1233”它可以显示“不支持的类型XYZ(供应商:MyXYZDB)”使用PreparedStatement.setObject(int, Object, int)
和getName
)方法,最后(也是类型安全的形式),它可以防止用户在数据库品牌Y中错误地使用数据库品牌X的类型代码(或者至少:允许驱动程序检测到这种错误的用法。)
那说:我认为对于JDBC的大多数基本和常规用法,这个界面不会增加太多。