使用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驱动程序不支持这种方法。我无法理解它的内容,我该如何解决这个问题?
答案 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)
getArray("columnName")
或getArray("columnIndex")
方法。