使用 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
at getArray()
.
如果我删除该行,它不会给出该异常。
我用谷歌搜索了一下,发现这是因为 JDBC 驱动程序不支持这种方法。我不明白它说的是什么,我该如何解决这个问题?
.getArray 方法获取 ARRAY SQL 数据类型。像这样: .getDecimal 获取 DECIMAL SQL 数据类型等等... MySQL(例如)不支持 ARRAY 数据类型。因此,Java 报告:功能不受支持。
如果要将所有字段作为索引数组获取,请对索引 1 处的 VARCHAR 列值使用 .getString(1)。
查询示例:SELECT id,title FROM news WHERE id = 1;
因此,您可以使用 .getInt(1) 获取 id,使用 .getString(2) 获取标题。
这就是我能说的全部))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)