我正在尝试将 ResultSet
转换为 int
数组,因为我的方法返回 int[]
:
public static int[] GetPathIDsFromDB (String Dbnum, int objectid) throws SQLException{
String selectSQL = "SELECT ID FROM " + Dbnum + ".tabName where ObjectID=?";
dbConnection = getDBConnection();
preparedStatement = dbConnection.prepareStatement(selectSQL);
preparedStatement.setInt(1 , objectid);
ResultSet rs = preparedStatement.executeQuery();
//int [] rsIDs = new rs.count;
int [] rsIDs = null;
while (rs.next()) {
rsIDs=rs.getInt(1); // the error int cannot be converted to int[]
}
return rsIDs;
}
如何转换它?
最佳答案
就我个人而言,我会将它们放入一个列表中,然后最后转换为数组。
List<Integer> rsIds = new ArrayList<Integer>();
while (rs.next()) {
rsIds.add(rs.getInt(1));
}
return rsIds.toArray(new Integer[](rsIds.size());
它应该通过自动装箱自动将 Integer[] 转换为 int[]。
<小时/>看来我是个白痴,而且这行不通,这就是我会这样做的:
rs.last();
int[] rsIds = new int[rs.getRow()];
rs.beforeFirst();
int counter = 0;
while (rs.next()) {
rsIds[counter] = rs.getInt(1);
counter++;
}
如果 ResultSet 的类型为 TYPE_FORWARD_ONLY,则此方法将不起作用,您需要更改滚动类型才能使其工作。
关于java - 将 ResultSet 转换为 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21160093/