我真的很困惑为什么这组代码只返回一个值。我在这里想做的是查询所有以主键作为参数的 *sense_num* (不是主键)。结果应该包含 2 个或更多 sense_num,因此在每个 sense_num 结果中,我尝试将每个元素存储在 int[] 数组中并分别返回 int 数组。例如,此查询的结果是 sense_num 172 和 173。它们都应该已经在数组中,但是当我测试调用函数时,它收到的是最后一个值 173。
我希望你能帮我解决这个问题。谢谢!
公共(public) int[] getAllSenseID(int primeID) {
int[] objects = {};
String qry = "SELECT sense_num FROM cebuano_sense WHERE id_num = '" + primeID + "'";
try {
DatabaseConn db = new DatabaseConn("cebuano_wsd");
db.connect();
db.query(qry);
ResultSet result = db.getResult();
ResultSetMetaData data = db.getData();
if (result.next() == true) {
java.sql.ResultSetMetaData rsmd = result.getMetaData();
int colNo = rsmd.getColumnCount();
result.beforeFirst();
int row = 0;
System.out.println(colNo + "::> Column Number");
while (result.next()) {
objects = new int[colNo + 1];
int i = 0;
//object[0] 在我测试它时具有所有值,这就是为什么它只接受最后一个//...如何获取或接收这两个值?
while (i < colNo) {
objects[i] = result.getInt(colNo);
//print to test
System.out.println(objects.length + " >> Count of Objects");
System.out.println(i + " :: " + objects[i] + " >> result");
i++;
}
}
}
} catch (SQLException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
return objects;
}
最佳答案
你的线路
objects = new int[colNo + 1];
替换您之前的所有行,因此您只有最后一行。
你可以有一个 List<int[]>
您为每一行添加的内容。
关于java - Java中如何处理ResultSet并将其转换为int的Array?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4972270/