ResultSet を整数配列に変換するにはどうすればよいですか? 整数配列が本当に必要です。リストなどはありません。
ResultSet rs = sqlite.query("SELECT ores FROM testtable WHERE nicknames='"+"testname"+"';");
「鉱石」には、スペースで区切られた 8 つの整数が含まれます: 10 20 30 40 50 60 70 80
編集:「鉱石」はVARCHARとして保存されます
不正なコード。プリペアドステートメントをお勧めします:
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]));
}
}
ResultSet はクエリの結果です。これを ArrayList または単純な Integer 配列に変換する場合は、ResulstSet を反復処理して、null 以外のすべてのオブジェクトを ArrayList または配列に追加できます。これは簡単な解決策です...
Vector<Integer> ores = new Vector<Integer>();
rs.beforeFirst();
while(rs.next()){ores.add(rs.getInt(1));}
Integer[] vals = ores.toArray(new Integer[0]);
たぶん次のようなもの:
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++;
}