在Java中通过点击按钮从MySQL数据库检索数据并在表单中导航
我编写了一个按钮/侦听器,用于导航上一页 上一个按钮动作执行代码如下在Java中通过点击按钮从MySQL数据库检索数据并在表单中导航,java,mysql,swing,Java,Mysql,Swing,我编写了一个按钮/侦听器,用于导航上一页 上一个按钮动作执行代码如下 private void PreviousBtnActionPerformed(java.awt.event.ActionEvent evt) { try{ String sql = "select ItemID,ItemName from druginfo"; pst=conn.prepareState
private void PreviousBtnActionPerformed(java.awt.event.ActionEvent evt) {
try{
String sql = "select ItemID,ItemName from druginfo";
pst=conn.prepareStatement(sql);
rs=pst.executeQuery();
while(rs.next()){
String id = rs.getString("ItemID");
String name = rs.getString("ItemName");
if(evt.getSource()==PreviousBtn){
if(rs.previous()){
if(rs.isFirst()){
PreviousBtn.setEnabled(false);
NextBtn.setEnabled(true);
}
IDcombo.addItem(id);
Namecombo.addItem(name);
}
}
}
}catch(Exception e){
e.printStackTrace();
}
}
问题是,当我按下“上一步”按钮时,我的窗口卡住了(因此无法运行代码)。我在这里犯了什么错误吗?我认为问题在于您无法使用导致问题的
rs.previous()
方法
尝试创建具有以下行的语句
pst = conn.prepareStatement(sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
希望有帮助:)您在控制台上遇到任何异常情况吗?1)要更快获得更好的帮助,请发布一个(最小完整可验证示例)或(简短、自包含、正确的示例)。2) 请学习常见的Java命名法(命名约定-例如
EachWordUpperCaseClass
,firstWordLowerCaseMethod()
,firstWordLowerCaseAttribute
,除非它是大写常量
),并一致使用它。3) 使用缩进代码行和代码块的逻辑和一致形式。缩进的目的是使代码的流程更易于遵循!事实上,我认为,如果上面的(不可编译的)代码(片段)缩进得更符合逻辑,那么就可以清楚地表明循环和测试是“互相争斗”的!的Java文档(您在回答之前应该查阅这些文档)建议它抛出一些有用的(或至少是信息丰富的)异常,这些异常会在失败时转储堆栈跟踪(给定上述代码)。@Vishal Zanzrukia的结果是一样的。.只是卡住了窗口。。也没有例外:(你说的窗户卡住是什么意思?@Vishal Zanzrukia窗户里什么也没发生..我也关不上它:(