单击按钮(NEXT / PREVIOUS)从MySQL DB检索记录

时间:2013-07-13 21:15:11

标签: java mysql swing

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

  • 如果用户点击“下一步”按钮,则应仅在各种JLabel上显示第一条/下一条记录的行内容。
  • 如果用户点击PREVIOUS按钮,则只显示上一条记录。
  • 如果用户到达最后一条记录,则应禁用“下一步按钮”。
  • 同样,如果用户位于第一个记录,则应禁用PREVIOUS按钮。只有在用户可以移动到上一条记录时才能启用它。

3 个答案:

答案 0 :(得分:0)

  1. 我认为你要做的是实现分页。我不是在摇摆,但如果你搜索可能有一些已经实现的控件在swing提供分页。请查看此link
  2. 第二步是从数据库中检索信息。我相信你需要编写一个存储过程 - >这类似于在DB级别上具有参数的方法,它只返回当前页面上需要显示的记录。您应该使存储过程接受@pageSize@pageIndex参数您可以阅读有关分页存储过程here的信息。
  3. 我还没有完成这个,我用ASP.NET和SQL Management Studio完成了这就是为什么我只发布带链接的概念。希望这些信息有用。

答案 1 :(得分:0)

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

方法重新表示一个布尔值,指示是否有下一个或上一个记录,您可以使用它来启用和禁用按钮

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

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

假设nextBtn和PreviousBtn是你的Bouttons和你的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();

                    }
                });

答案 2 :(得分: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);
        }

}
}
相关问题