如何检索数据库中表的上一行?

时间:2018-04-06 11:05:46

标签: java mysql

我创建了一个名为“客户导航表单”的界面。在这种形式下,当我单击“返回”按钮时,我想加载前一个客户的详细信息。如果第一个客户的数据在表单上,​​当我单击“返回”按钮时,消息对话框应该显示消息“这是第一个客户”。但我的程序不执行此任务。

这是我写的代码..

  backBtn.addActionListener(new ActionListener (){
                public void actionPerformed (ActionEvent evt){
                    String id=idText.getText();
                    String SQL="Select from customer where id='"+id+"'";

                    try{
                        Class.forName("com.mysql,jdbc.Driver");
                        Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/Thogakade","root","1234");
                        Statement stm=conn.createStatement();
                        ResultSet rst=stm.executeQuery(SQL);
                        if(rst.previous()){
                            idText.setText(rst.getString("id"));
                            nameText.setText(rst.getString("name"));
                            addressText.setText(rst.getString("address"));
                            salaryText.setText(rst.getString("salary"));
                        }else{
                            JOptionPane.showMessageDialog(CustomerNavigationForm.this,"This is the first customer..");
                        }
                    }catch(SQLException | ClassNotFoundException ex){
JOptionPane.showMessageDialog(CustomerNavigationForm.this,ex.getMessage());
                    }
                }
            });

1 个答案:

答案 0 :(得分:0)

首先要问的问题是这些是如何排序的?按ID?

在这种情况下,将SQL查询更改为id< ?按id desc limit 1

排序

这将为您提供以前的记录。