将java.util.List <string>转换为java.sql.Array </string>

时间:2010-05-21 07:35:47

标签: java jdbc

如何将java.util.List<String>个实例转换为java.sql.Array

2 个答案:

答案 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是一个函数参数修饰符,而不是类型说明符。