【问题标题】:Convert java.util.List<String> into java.sql.Array将 java.util.List<String> 转换为 java.sql.Array
【发布时间】:2011-02-22 05:52:38
【问题描述】:

如何将java.util.List&lt;String&gt; 实例转换为java.sql.Array

【问题讨论】:

    标签: java jdbc


    【解决方案1】:

    使用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 返回的值


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

    【讨论】:

    • 这是 当前 Java。如果他比他低,他应该这么说。
    • 是的,关于 java 的版本,你是对的,我刚刚写了我的评论,因为我试图在我的书签 javadoc 中查找方法,它是 1.5(因为它是我必须使用的版本) )...
    • 有趣的是,对于 Oracle 数据库,不能使用此方法。见documentation here
    【解决方案2】:

    createArrayOf 的类型参数是元素类型,而不是数组类型,因此您可能想要“varchar”或“text”之类的东西。 VARIADIC 是函数参数修饰符,而不是类型说明符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-10
      • 2011-01-26
      • 2011-10-22
      • 2014-10-14
      相关资源
      最近更新 更多