0

ResultSet を整数配列に変換するにはどうすればよいですか? 整数配列が本当に必要です。リストなどはありません。

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

「鉱石」には、スペースで区切られた 8 つの整数が含まれます: 10 20 30 40 50 60 70 80

編集:「鉱石」はVARCHARとして保存されます

4

4 に答える 4

3

不正なコード。プリペアドステートメントをお勧めします:

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 を反復処理して、null 以外のすべてのオブジェクトを 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 に答える