getArray上的SQLFeatureNotSupportedException

时间:2012-07-31 08:10:53

标签: java mysql jdbc

使用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);
}

然后,我在SQLFeatureNotSupportedException获得getArray()

如果删除该行,则不会出现该异常。

我搜索了它,我发现那是因为JDBC驱动程序不支持这种方法。我无法理解它的内容,我该如何解决这个问题?

2 个答案:

答案 0 :(得分:5)

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

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

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

所以你可以用.getInt(1)获取id,用.getString(2)获取title。

这就是我能说的全部)))

答案 1 :(得分:1)

MySql数据库服务器不支持

getArray("columnName")getArray("columnIndex")方法。