如何将java.util.List<String>
个实例转换为java.sql.Array
?
答案 0 :(得分:31)
使用connection.createArrayOf(...)
例如:
final String[] data = yourList.toArray(new String[yourList.size()]);
final java.sql.Array sqlArray = connection.createArrayOf(typeName, data);
statement.setArray(position, sqlArray);
typeName为:
数组元素映射到的类型的SQL名称。 typeName是特定于数据库的名称,可以是此数据库支持的内置类型,用户定义类型或标准SQL类型的名称。这是Array.getBaseTypeName
返回的值
如评论中所述,这是Java 1.6。对于旧版本,您无法以独立于驱动程序的方式创建此版本。你只应该获取数组,而不是创建它们。如果您愿意,可以从jdbc驱动程序中实例化实现类,但这是不可移植的。
答案 1 :(得分:1)
createArrayOf的type参数是元素类型,而不是数组类型,所以你可能想要“varchar”或“text”之类的东西。 VARIADIC是一个函数参数修饰符,而不是类型说明符。