结果集结束后错误(可能是字符串)

时间:2014-09-08 17:53:47

标签: mysql

我只是想知道如何摆脱这个错误:

try {
    int ppointd;
    String nazwa;
    int smr;
    int zab;
    PreparedStatement pktUpdate = Main.c.prepareStatement("SELECT * FROM `staty` ORDER BY `pkt` DESC LIMIT 10");
    ResultSet rs1 = pktUpdate.executeQuery();
    for(int i = 1; i<11; i++) {
        rs1.next();
        nazwa = rs1.getString("Nazwa");
        zab = rs1.getInt("zab");
        smr = rs1.getInt("smr");
        ppointd = rs1.getInt("pkt");
        p.sendMessage("§a"+i+". §e" + nazwa + " §b- §6PKT: §7[§4" + ppointd+ "§7] §6ZAB: §7[§4"+zab+"§7] §6SMR: §7[§4"+smr+"§7]");
    }
} catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

我做了一些挖掘,我知道它有关String,但我不知道如何跳过这个并获得相同的输出。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你在1到10的循环中调用rs1.next(),但是如果你的SELECT查询返回少于10行怎么办?

当你调用rs1.next()时,你需要测试该方法是否返回false,如果是,则跳出循环。

例如,以下列方式编码它而不是使用for循环更为常见:

while (rs1.next()) {
    . . .
}

这样,当没有更多行时,循环会自动停止。