2013-07-13 53 views
-1

如何从两个按钮上点击从MySQL数据库检索记录?点击按钮(NEXT/PREVIOUS)从MySQL DB中检索记录

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

我只想要一个逻辑如何在MySQL数据库中上下移动动态。代码太长,它被分成模块。 –

+0

问题是好的,一旦我建立解决方案,我也发布了相关的代码。之前也提过类似的问题,但解决方案过于复杂。 –

回答

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); 
     } 

} 
} 
0
  1. 我觉得你要做的是实现分页。我没有摆动,但如果你搜索可能有一些已经实现的摆动提供分页控制。检查这个link
  2. 第二步是从数据库中检索信息。我相信你需要编写一个存储过程 - >这就像一个DB级参数的方法,它只返回需要在当前页面显示的记录。您应该使存储过程接受@pageSize@pageIndex参数。您可以阅读有关分页存储过程here

我没有这样做的摆动,我已经完成了ASP.NET和SQL管理工作室,这就是为什么我只发布链接的概念。希望这些信息是有帮助的。

+0

谢谢你的帮助,但我已经看到一个代码很久,我无法回忆。只有使用ResultSet对象,我们可以获得这个功能,但我无法得到它。 ResultSet对象具有各种功能,但我无法开发如何使用它们来实现所需功能的逻辑。 –

0

你必须自己实现的行为,通过使用ResultSet中陈述的方法,在这种情况下,next()和以前的()方法

方法retruns指示是否有一个或下一个记录的布尔值,你可以用它来启用和禁用按钮

看看这个链接,说明如何使用JDBC声明

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

假设nextBtn和PreviousBtn是我们需要两个变量(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(); 

        } 
       }); 
+0

谢谢你会尝试。 –

+0

我添加了一段代码,您可以适应您的情况 –

+0

thanx现在工作。 –