此代码仅从数据库中检索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;
}
答案 0 :(得分: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行,您可以尝试使用没有where的查询并返回更多行。
答案 1 :(得分: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;
}
}
答案 2 :(得分:0)
我假设Next()
1 是每次按下按钮时执行的方法。如果是这样,那么您需要确保将ResultSet
保存在此方法之外,以便每次按下按钮时都可以循环显示结果。
目前,您正在执行查询,然后在每次按下按钮时循环到最后一条记录。
1 使用Java naming conventions并使用小写'n'开始您的方法
答案 3 :(得分:0)
setText()没有意义。它总会让你回到最后一排。 您应该将您的记录放在While循环中的列表中,并在外面执行您想要的任何操作。