getArray上的SQLFeatureNotSupportedException

Jun*_*Kim 1 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);
}
Run Code Online (Sandbox Code Playgroud)

然后,我得到了SQLFeatureNotSupportedExceptiongetArray().

如果我删除该行,则不会给出该异常.

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

小智 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.

这就是我可以说的那些)))