JDBC 4.2接口DriverAction和SQLType - 示例

时间:2014-05-29 13:15:55

标签: java jdbc

我无法找到JDBC 4.2新接口DriverActionSQLType的使用示例。

有谁能举个例子?

1 个答案:

答案 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的大多数基本和常规用法,这个界面不会增加太多。