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

Joh*_*n D 23 java jdbc

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

Boz*_*zho 32

使用 connection.createArrayOf(...)

例如:

final String[] data = yourList.toArray(new String[yourList.size()]);
final java.sql.Array sqlArray = connection.createArrayOf(typeName, data);
statement.setArray(position, sqlArray);
Run Code Online (Sandbox Code Playgroud)

其中typeName是:

数组元素映射到的类型的SQL名称.typeName是特定于数据库的名称,可以是此数据库支持的内置类型,用户定义类型或标准SQL类型的名称.这是Array.getBaseTypeName返回的值


如评论中所述,这是Java 1.6.对于旧版本,您无法以独立于驱动程序的方式创建此版本.你只应该获得数组,而不是创建它们.如果您愿意,可以从jdbc驱动程序实例化实现类,但这是不可移植的.

  • 值得注意的是,使用Oracle数据库时,无法使用此方法.参见[此处的文档](http://docs.oracle.com/cd/B28359_01/java.111/b31224/oraarr.htm#i1056647) (4认同)
  • 这是_current_ Java。如果他比他低,他应该说明这一点。 (2认同)