我试图从持久层中抽象出一些实现细节。目前我有两个函数,一个创建ARRAY
,另一个创建ArrayDescriptor
。我目前正在使用HSQL编写测试并继续遇到一个问题,我在从ClassCastException
转换为JDBCConnection
时获得OracleConnection
。这是由以下原因引起的:createDescriptor。有没有办法删除Oracle细节并以通用方式使用ARRAY和ArrayDescriptor的概念?我目前不在我的源代码附近,所以我会从内存中回忆起来。
答案 0 :(得分:2)
如果您使用的是JDBC 4 / Java 6或更高版本,则可以尝试使用JDBC阵列创建方法
从内存中,Oracle特定的API为您提供了更多的选择和灵活性,但如果您想使用除Oracle之外的其他东西作为您的数据库,那么使用JDBC API是唯一的选择。
编辑:根据this documentation,Oracle JDBC驱动程序不支持createArrayOf()。因此,您可能做的最好的事情是对代码进行instanceof
检查,如果检测到OracleConnection则使用Oracle特定的API,否则使用Connection.createArrayOf()。