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

时间:2018-04-18 10:05:53

标签: java mysql jtable defaulttablemodel data-retrieval

我正在开发一个java应用程序,其中我有一个名为jInternalFrame的{​​{1}}表单,其中有两个LCI名为jTextFieldsDATE。我与名为SUB_ID_的数据库建立db连接,其中我有一个名为FINAL_POST的表。

我需要做的是将两个用户输入分别与名为LCIL_DATE的列进行比较,分别对应SQL表的每个记录,并将匹配的记录检索到SUB_ID调用jTable

假设有两条记录与tb1输入和DATE输入相符,一条记录在早上10点12分输入,另一条记录在下午1点15分输入。在同一天,在这种情况下,目前只检索了第一条记录。

换句话说,即使有几个记录与SUB_ID_DATE相符,但只检索到第一条记录。

以下是我的相关SUB_ID_名为Load_To_Table的代码。DATE , SUB_ID_, Load_To_Table and tb1

jButton

LCI table description

LCI table containing two data items matching with both of the user inputs

Out put containg only one record

我很困惑,如何将所有匹配的记录检索到private void Load_To_TableActionPerformed(java.awt.event.ActionEvent evt) { try{ Statement s = DB.getConnection().createStatement(); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ResultSet rs,rs1,rs2,rs3,rs4,rs5,rs6,rs7; rs=j.getData("select E_ID from User where E_ID='"+user+"'"); rs1=j.getData("select * from employee where E_ID= '"+user+"'"); rs2=j.getData("select * from SUBJECT where SUB_ID= '"+SUB_ID_.getText()+"'"); rs3=j.getData("select * from LCI"); if((((rs.next()==true)&&(rs1.next()==true))&&(rs2.next()==true))&&(rs3.next()==true)) { if((rs.getString(1).equals(rs2.getString(4)))&&(rs2.getString(4).equals(rs3.getString(5)))) { rs4=j.getData("select * from LCI where SUB_ID='"+SUB_ID_.getText()+"'"); if((rs4.next()==true)) { try { rs5=j.getData("select count(L_DATE)from LCI where L_DATE='"+DATE.getText()+"'"); if(rs5.next()) { int count=rs5.getInt(1); System.out.println(rs5.getInt(1)); DefaultTableModel dtm=(DefaultTableModel)tb1.getModel(); Vector v=new Vector(); Vector v1=new Vector(); Vector v2=new Vector(); for(int i=0;i<=count;i++) { rs6=j.getData("select * from LCI where L_DATE='"+DATE.getText()+"'"); if(rs6.next()==true) { JOptionPane.showMessageDialog(this, "Done"); v.addElement(rs6.getString(1)); dtm.addColumn(v); v1.addElement(rs6.getString(3)); dtm.addColumn(v1); v2.addElement(rs6.getString(10)); dtm.addColumn(v2); s.executeQuery("SELECT * FROM LCI WHERE L_ID IN(SELECT (L_ID + 1)FROM LCI WHERE L_DATE = '"+DATE.getText()+"'"); } else { JOptionPane.showMessageDialog(this, "Please try another date"); } } } else { System.out.println("not ok"); } } catch(Exception ex) { ex.printStackTrace(); } } else { JOptionPane.showMessageDialog(this, "Your Employee Identity is not valid.Please contact the admin"); } } else { JOptionPane.showMessageDialog(this, "comparision failed"); } } else{ JOptionPane.showMessageDialog(this, "Failed to connect with database.Please re-check your Employee Identity Nuumber and Try again."); } } catch(Exception ex) { ex.printStackTrace(); } // TODO add your handling code here: }

如何完成这项工作?

或者,如果任何人可以告诉我如何命令程序读取/转到db表的下一行/记录并检查该记录是否与两个用户输入匹配,请不要犹豫。 :)

我使用Netbeans 8.0.2进行GUI创建,使用“MYSQL Query Browser”进行数据库创建。

提前致谢。

0 个答案:

没有答案