因此,在我的应用程序中,我尝试迭代我的 rs 记录。我希望能够一次打印出一系列记录,就像如果我有 100 条记录并且缺少记录 3、12-15 和 40-60,我希望它显示已读取的记录。所以我可以知道其他记录丢失/跳过。我在这里发布了更完整的代码Java JDBC display first 500 records at a time, commit, than display the next 500 records and etc
更新记录1-2
更新记录4-11
更新记录 13-39
更新记录61-100
try {
int rowCount = 0;
while (rs.next()) {
String ingressflag = rs.getString("ingress_flag");
String egressflag = rs.getString("egress_flag");
String ceingressflag = rs.getString("ce_ingress_flag");
String ceegressflag = rs.getString("ce_egress_flag");
int profileid = rs.getInt("profile_id");
preparedStatement.setString(1, ingressflag);
preparedStatement.setString(2, egressflag);
preparedStatement.setString(3, ceingressflag);
preparedStatement.setString(4, ceegressflag);
preparedStatement.setInt(5, profileid);
preparedStatement.addBatch();
rowCount++;
// System.out.println("profileid updated : " + profileid + " timestamp " + new java.util.Date() + "\n");
}
最佳答案
如果您想找到缺少哪个 profile_id
,您可以尝试声明一个 int
类型的变量,例如 expectedId
并初始化为起始位置案例1中表的profile_id
。然后在while循环中检查返回的profile_id
是否等于expectedId
,如果不打印出消息,最后将 expectedId
加 1,如下所示。
int expectedId = 1;
while (rs.next()) {
//All your code
if(expectedId != profileid){
System.out.println ("Profile id "+expectedId+" to "+(profileid-1)+" missing.";
expectedId = profileid;
}
expectedId++;
}
这里,每当序列丢失时,它都会给出一个输出,说明丢失的 id。
关于Java如何显示已读取的记录范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31387729/