0

此代码仅从数据库中检索 1 条记录。

如何使用下一步按钮从数据库中检索其余记录

public void Next()
{
  Connection con=null;
  ResultSet rs=null;

  try {
    con=DBConnection();
    Statement stmt=con.createStatement();
    rs= stmt.executeQuery("select * from info where id=1");

    while(rs.next())
    {            
      t1.setText(rs.getString("Name"));
      t2.setText(rs.getString("Branch"));             
    }
  } catch (Exception e) {
    // TODO: handle exception
  }finally{
    try {
      rs.close();
    } catch (SQLException err) {
      JOptionPane.showMessageDialog(btnnext, err.getMessage());
      // TODO: handle exception
    }
  }
  //return rs;
}
4

4 回答 4

3

首先分两步执行此操作:

在 next() 方法之外创建数据库连接,除非您无法获取其他记录:

    Connection con=null;
    ResultSet rs=null;

    try {
        con=DBConnection();
        rs = con.createStatement().executeQuery("select * from info where id=1");
    }

其次,迭代查询:

public boolean Next()

{
 if(!rs.next()) { //if no next then we should deactivate the next button
   return false;
  } else {
  t1.setText(rs.getString("Name"));
  t2.setText(rs.getString("Branch")); 
  return true;
  }
}

另请确保以下查询:

从 id=1 的信息中选择 *

将返回超过 1 行,您可以尝试使用没有位置并返回更多行的查询。

于 2013-07-08T07:27:27.593 回答
1

将数据放入列表中

List<SomeObject> list = new ArrayList();
        while(rs.next())
                     {
          SomeObject obj = new SomeObject();
          obj.setName(rs.getString("Name"));
          obj.setBranch(rs.getString("Branch"));
          list.add(obj);
                     }

现在您可以使用列表来提取数据。

和 SomeObject :

  public class SomeObject {

    String name;
    String branch;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getBranch() {
        return branch;
    }

    public void setBranch(String branch) {
        this.branch = branch;
    }

}
于 2013-07-08T07:21:47.677 回答
0

我假设Next()1是每次按下按钮时执行的方法。如果是这样,那么您需要确保在此方法ResultSet 之外保存您的方法,以便每次按下按钮时都可以循环查看结果。

当前,您正在执行查询,然后每次按下按钮时循环到最后一条记录。

1 使用Java 命名约定并以小写“n”开始您的方法

于 2013-07-08T07:28:20.833 回答
0

While 循环中的 setText() 没有意义。它总是会返回最后一行。您应该将记录放在 While 循环中的列表中,然后在外面做任何您想做的事情。

于 2013-07-08T07:41:29.120 回答