1

使用 MySQL 5.5、STS 2.9.2、mysql-connector-java-5.1.21-bin.jar

我想从 ResultSet 中获取一个数组。

所以我这样编码:

try {
  Connection conn = DriverManager.getConnection(url, id, pass);
  Statement stmt = conn.createStatement();
  ResultSet rs = stmt.executeQuery(query); 

  if (rs.next()) {
    Array code = rs.getArray("code");
    Array count = rs.getArray("count");         

    Object objCode = code.getArray();
    Object objCount = count.getArray();

    int[] itemCode = (int[]) objCode;
    int[] itemCount = (int[]) objCount;

    // do something     
  } 

  conn.close();
  stmt.close();
  rs.close();           
} catch(SQLException e) { 
  printError(e);
}

然后,我得到了一个SQLFeatureNotSupportedExceptionat getArray()

如果我删除该行,它不会给出该异常。

我google了一下,发现是因为JDBC驱动不支持这种方法。我无法理解它所说的内容,我该如何解决这个问题?

4

2 回答 2

6

.getArray 方法获取 ARRAY SQL 数据类型。像这样: .getDecimal 获取 DECIMAL SQL 数据类型等等...... MySQL(例如)不支持 ARRAY 数据类型。因此,Java 报告:不支持该功能。

如果要将所有字段作为索引数组获取,请使用 .getString(1) 获取索引 1 处的 VARCHAR 列值。

示例查询:SELECT id,title FROM news WHERE id = 1;

因此,您可以使用 .getInt(1) 获取 id,并使用 .getString(2) 获取标题。

这就是我能说的全部))

于 2012-10-05T13:51:24.073 回答
2

getArray("columnName")getArray("columnIndex")MySql 数据库服务器不支持方法。

于 2014-07-23T09:18:27.363 回答