-1

单击两个按钮如何从 MySQL 数据库中检索记录?

  • 如果用户单击 NEXT 按钮,它应该只在各种JLabel.
  • 如果用户点击 PREVIOUS 按钮,它应该只显示以前的记录。
  • 如果用户到达最后一条记录,则应禁用 NEXT 按钮。
  • 同样,如果用户是第一次记录,则应禁用 PREVIOUS 按钮。只有当用户可以移动到上一个记录时才应该启用它。
4

3 回答 3

0
  1. 我认为您要做的是实现分页。我不喜欢摇摆,但如果您搜索可能在摇摆提供分页中已经实现了一些控件。检查此链接
  2. 第二步是从数据库中检索信息。我相信您需要编写一个存储过程-> 这类似于在 DB 级别具有参数的方法,它将仅返回需要在当前页面上显示的记录。您应该使存储过程接受@pageSize@pageIndex参数您可以在此处阅读有关分页存储过程的信息。

我没有在摇摆中做过这个,我已经用 ASP.NET 和 SQL Management Studio 完成了,这就是为什么我只发布带有链接的概念。希望这些信息对您有所帮助。

于 2013-07-13T21:22:58.397 回答
0

您必须自己实现行为,使用 ResultSet 语句方法,在本例中为 next() 和 previous() 方法

该方法返回一个布尔值,指示是否有下一条或上一条记录,您可以使用它来启用和禁用您的按钮

查看此链接以了解如何使用 JDBC 语句

http://docs.oracle.com/javase/tutorial/jdbc/basics/processingsqlstatements.html

假设 nextBtn 和 PreviousBtn 是你和你的 Bouttons 和 res 你的 ResultSet,我们需要两个变量(hasNext 和 hasPrevious)来保存我们按钮的状态,你可以参考下面的代码片段,你必须适应你的情况,它不会直接工作。

private boolean hasNext = false;
private boolean hasPrevious = false;

public void updateBtnState() {

     nextBtn.setEnabled(hasNext); 
     previousBtn.setEnabled(hasPrevious);

 }


previousBtn = new JButton(" Previous <<");
                previousBtn.addActionListener(new ActionListener() {

                    @Override
                    public void actionPerformed(ActionEvent e) {

                    hasPrevious = res.previous();
                                            if (hasPrevious ) hasNext = true;
                        // do something 
                        updateBtnState();

                    }
                });

nextBtn = new JButton(" Next >>");
nextBtn.addActionListener(new ActionListener() {

                    @Override
                    public void actionPerformed(ActionEvent e) {
                        hasNext = res.next();
                                                    if (hasNext ) hasPrevious = true;
                        // do something 
                        updateBtnState();

                    }
                });
于 2013-07-13T21:32:49.897 回答
0

解决方案是: -

public void actionPerformed(ActionEvent evt) {

   //HERE next and pre are Button name;
   //rs is REsultSet
  if (evt.getSource()==next) 
    {

        try {

            if (rs.next()) 
            {
                if(rs.isLast())
                { 
                    pre.setEnabled(true);
                    next.setEnabled(false);
                }
                //do action

            }





        } catch (SQLException ex) {
            Logger.getLogger(DeleteQ.class.getName()).log(Level.SEVERE, null, ex);
        }

    } 

    else if (evt.getSource() == pre)
    {

       try {


           if(rs.previous())
            {
                if(rs.isFirst())
                {
                    pre.setEnabled(false);
                    next.setEnabled(true);
                }
               //do action


            }




        } catch (SQLException ex) 
        {
            Logger.getLogger(DeleteQ.class.getName()).log(Level.SEVERE, null, ex);
        }

}
}
于 2013-07-14T10:26:54.450 回答