gpt4 book ai didi

java - 将 ResultSet 转换为 int 数组

转载 作者:行者123 更新时间:2023-12-01 13:37:21 24 4
gpt4 key购买 nike

我正在尝试将 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com