嗨,这是我的下一个按钮的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
}
}
}
答案 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()