如何将ResultSet转换为Integer数组? 我真的需要一个Integer数组。没有列表或类似的东西。
ResultSet rs = sqlite.query("SELECT ores FROM testtable WHERE nicknames='"+"testname"+"';");
“ores”包含由空格分隔的8个整数:10 20 30 40 50 60 70 80
编辑: “ores”存储为VARCHAR
答案 0 :(得分:3)
错误的代码。我推荐一个PreparedStatement:
PreparedStatement ps = connection.prepareStatement("SELECT ores FROM testtable WHERE nicknames= ?");
ps.setString(1, nickname);
ResultSet rs = ps.executeQuery();
List<Integer> values = new ArrayList<Integer>();
while (rs.next()) {
String ores = rs.getString("ores");
String [] tokens = ores.split("\\s+");
for (int i = 0; i < tokens.length; ++i) {
values.add(Integer.valueOf(tokens[i]));
}
}
答案 1 :(得分:2)
ResultSet是yourr查询的结果,如果要将其转换为ArrayList或简单的Integer数组,则可以遍历ResulstSet并将所有非null Object添加到ArrayList或数组中。这是一个简单的解决方案......
答案 2 :(得分:0)
Vector<Integer> ores = new Vector<Integer>();
rs.beforeFirst();
while(rs.next()){ores.add(rs.getInt(1));}
Integer[] vals = ores.toArray(new Integer[0]);
答案 3 :(得分:-2)
可能是这样的:
rs.last();
rowcnt = myResultSet.getRow(); // get row no.
rs.beforeFirst();
int i = 0;
Integer[] options = new Integer[rowcnt];
while (rs.next()) {
options[i] = Integer.parseInt(rs.getString(i));
i++;
}