我在我的数据库中手动增加我的 ID 号,因为我无法让它自动工作。这是一个项目,如果它不能自动工作也没关系 - 我可以稍后尝试解决。
我正在创建一个方法来检查结果集中的最低空闲 ID 号。最低的将被设置为一个名为 availableId 的整数,用户将在注册时获得该整数。
这是我到目前为止阅读的内容:
http://docs.oracle.com/javase/6/docs/api/java/sql/ResultSet.html http://wiki.netbeans.org/GetStartedwithJavaDB
例如,这些是我在数据库中的 ID:
/,2,/,4,5,6,/,8,9
由于这些用户删除了他们的帐户,因此缺少 1、3 和 7。我想在填写任何其他人之前填写数字 1,然后下一个用户将注册为例如数字 3。
public int getAvailableId() {
int availableId = 1;
try {
String stmt = "select PID from APP.PERSON";
PreparedStatement ps = Main.getPreparedStatement(stmt);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
int n = rs.getInt(1);
int n2 = rs.next().getInt(1);
if (!(n == 1)) {
return availableId;
} else if (!(n2-- == n)) {
availableId = n++;
}
}
rs.close();
ps.close();
} catch (Exception e) {
System.out.println(e);
}
return availableId;
}
这里有两个问题:
rs.next()
返回一个布尔值,但我希望 n2 在下一行中保存整数的值 - 我找不到从这里执行此操作的方法 - http://docs.oracle.com/javase/6/docs/api /java/sql/ResultSet.html- 我不知道如何遍历所有内容以找到可能的最低免费 ID 号。
请原谅垃圾代码!随着我的发展,我学到了很多东西,我知道这对一和二来说是不好的做法,代码不是很好。
我该怎么做呢?