如何使用java检索mysql表的多行

zf2sa74q  于 2021-06-25  发布在  Mysql
关注(0)|答案(0)|浏览(223)

我正在开发一个java应用程序,其中有一个 jInternalFrame 调用的窗体 LCI 其中我有两个 jTextFields 打电话 DATE 以及 SUB_ID_ 。我与名为 FINAL_POST 我把这张table叫做 LCI .
我需要做的是将上面两个用户输入与名为 L_DATE 以及 SUB_ID 分别将sql表的每条记录和检索上的匹配记录 jTable 打电话 tb1 .
假设有两条记录与 DATE 输入和 SUB_ID_ 输入,一条记录在上午10点12分输入,另一条记录在同一天下午1点15分输入,在这种情况下,此时只检索第一条记录。
换言之,即使有几个记录符合 DATE 以及 SUB_ID_ 如果存在,则只检索第一条记录。
下面是我的相关代码 jButton 称为将\u加载到\u表。 DATE , SUB_ID_ , Load_To_Table 以及 tb1 ```
private void Load_To_TableActionPerformed(java.awt.event.ActionEvent evt) {
try{

  1. Statement s = DB.getConnection().createStatement();
  2. DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  3. ResultSet rs,rs1,rs2,rs3,rs4,rs5,rs6,rs7;
  4. rs=j.getData("select E_ID from User where E_ID='"+user+"'");
  5. rs1=j.getData("select * from employee where E_ID= '"+user+"'");
  6. rs2=j.getData("select * from SUBJECT where SUB_ID= '"+SUB_ID_.getText()+"'");
  7. rs3=j.getData("select * from LCI");
  8. if((((rs.next()==true)&&(rs1.next()==true))&&(rs2.next()==true))&&(rs3.next()==true))
  9. {
  10. if((rs.getString(1).equals(rs2.getString(4)))&&(rs2.getString(4).equals(rs3.getString(5))))
  11. {
  12. rs4=j.getData("select * from LCI where SUB_ID='"+SUB_ID_.getText()+"'");
  13. if((rs4.next()==true))
  14. {
  15. try
  16. {
  17. rs5=j.getData("select count(L_DATE)from LCI where L_DATE='"+DATE.getText()+"'");
  18. if(rs5.next())
  19. {
  20. int count=rs5.getInt(1);
  21. System.out.println(rs5.getInt(1));
  22. DefaultTableModel dtm=(DefaultTableModel)tb1.getModel();
  23. Vector v=new Vector();
  24. Vector v1=new Vector();
  25. Vector v2=new Vector();
  26. for(int i=0;i<=count;i++)
  27. {
  28. rs6=j.getData("select * from LCI where L_DATE='"+DATE.getText()+"'");
  29. if(rs6.next()==true)
  30. {
  31. JOptionPane.showMessageDialog(this, "Done");
  32. v.addElement(rs6.getString(1));
  33. dtm.addColumn(v);
  34. v1.addElement(rs6.getString(3));
  35. dtm.addColumn(v1);
  36. v2.addElement(rs6.getString(10));
  37. dtm.addColumn(v2);
  38. s.executeQuery("SELECT * FROM LCI WHERE L_ID IN(SELECT (L_ID + 1)FROM LCI WHERE L_DATE = '"+DATE.getText()+"'");
  39. }
  40. else
  41. {
  42. JOptionPane.showMessageDialog(this, "Please try another date");
  43. }
  44. }
  45. }
  46. else
  47. {
  48. System.out.println("not ok");
  49. }
  50. }
  51. catch(Exception ex)
  52. {
  53. ex.printStackTrace();
  54. }
  55. }
  56. else
  57. {
  58. JOptionPane.showMessageDialog(this, "Your Employee Identity is not valid.Please contact the admin");
  59. }
  60. }
  61. else
  62. {
  63. JOptionPane.showMessageDialog(this, "comparision failed");
  64. }
  65. }
  66. else{
  67. JOptionPane.showMessageDialog(this, "Failed to connect with database.Please re-check your Employee Identity Nuumber and Try again.");
  68. }
  69. }
  70. catch(Exception ex)
  71. {
  72. ex.printStackTrace();
  73. }

// TODO add your handling code here:
}
``` LCI 表说明 LCI 包含两个与两个用户输入匹配的数据项的表
只有一条记录
我在这里很困惑如何检索到所有匹配的记录 tb1 .
怎么做?
或者,如果有人能告诉我如何命令程序读取/转到db表的下一行/记录,并检查该记录是否与两个用户输入匹配,请不要犹豫。:)
我使用netbeans8.0.2创建gui,使用“mysql查询浏览器”创建数据库。
提前谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题