Java代码的下一个按钮

时间:2013-04-03 06:44:50

标签: java swing jdbc

嗨,这是我的下一个按钮的java代码。

但它只进入1条记录,即在最后一条记录之后它只移动到第1条记录。

如何在整个数据库条目中移动它。

请给我一些建议。

public void Next() {
    Connection con = null;
    ResultSet rs = null;
    try {
        con = DBConnection();
        PreparedStatement pstmt = con.prepareStatement("select * from data", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
        rs = pstmt.executeQuery();
        if (rs.next()) {
            field1.setText(rs.getString("Name"));
            field2.setText(String.valueOf(rs.getInt("Age")));
        } else {
            rs.previous();
            JOptionPane.showMessageDialog(nxtbtn, "end of file");
        }
    } catch (Exception e) {
        // TODO: handle exception
    } finally {
        try {
            rs.close();
        } catch (SQLException err) {
            JOptionPane.showMessageDialog(nxtbtn, err.getMessage());
            // TODO: handle exception
        }
    }
}

5 个答案:

答案 0 :(得分:1)

当您调用next时,它会重新加载数据库中的所有结果并将光标移动到第一行之前,调用rs.next将移动到第一行。

您是否询问过一次,大概是当您需要显示下一条记录时。

next方法中,只需调用rs.next()即可将光标移动到结果集中的下一个可用行。

当然,您需要继续管理错误状态;)

答案 1 :(得分:0)

您需要获得resultset方法的next()方面。每次调用next()会重置resultset,并cursor移动以重新开始。

答案 2 :(得分:0)

如果理解正确,您想使用下一个按钮点击结果集?

然后你应该读取数据库,并将它存储在结果集中的下一个按钮方法之外。

此刻,您似乎每次点击都会创建一个新的结果集,只能读取第一组数据。

private Connection con = DBConnection();
private ResultSet rs = null;
private Statement stmt = null;
public void onLoad()
{
stmt = con.createStatement();
rs = stmt.executeQuery("YOUR-CODE-HERE");
}

现在在下一个方法中,每次点击都会浏览rs

答案 3 :(得分:0)

rs.next()将光标移动到下一个可用的行。显示为什么它显示一条记录。使用while(rs.next())

答案 4 :(得分:0)

向下移动一条记录,如下所示

rs.next()

浏览所有“下一个”记录,如下所示

while(rs.next())

向下移动

rs.previous()