0

如何将 ResultSet 转换为 Integer 数组?我真的需要一个整数数组。没有列表或类似的东西。

ResultSet rs = sqlite.query("SELECT ores FROM testtable WHERE nicknames='"+"testname"+"';");

"ores" 包含用空格分隔的 8 个整数:10 20 30 40 50 60 70 80

编辑:“ores”存储为 VARCHAR

4

4 回答 4

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]));
    }
}
于 2012-12-06T15:55:18.507 回答
2

ResultSet 是您查询的结果,如果要将其转换为 ArrayList 或简单的 Integer 数组,您可以遍历 ResulstSet 并将所有非空对象添加到 ArrayList 或数组中。这是一个简单的解决方案...

于 2012-12-06T15:52:01.497 回答
0
Vector<Integer> ores = new Vector<Integer>();
rs.beforeFirst();
while(rs.next()){ores.add(rs.getInt(1));}
Integer[] vals = ores.toArray(new Integer[0]);
于 2012-12-06T15:55:11.400 回答
-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++;  
}  
于 2012-12-06T15:52:43.430 回答