2014-07-25 49 views
0

我正在处理这个问题,我需要从数据库中获取数据,然后填充到jtable中。我正在使用类似语句的查询。问题是当查询与一条记录匹配时,我无法在表格中看到任何记录。这是我的代码。Jtable没有填充一条记录

ResultSet rs=null; 
     String customer_name = null; 
     System.out.println("In the verfiy login"); 
     try { 
      Connect_MYSQL object = new Connect_MYSQL(); 
      conn = object.getConnection(); 
     } catch (Exception e) { 
      System.out.println("Error while getting connection"); 
     } 
     try { 
      Statement statement = (Statement) conn.createStatement(); 
      String Query = "Select * from login where username like'%"+ name+"%' or usertype like'%"+name+"%'"; 
      System.out.println(Query); 
      rs = statement.executeQuery(Query); 
      if (rs.next()) { 
      System.out.println("INsie Rs"); 

       return rs; 
      } 
     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } 
     return rs; 

,我如何使用JTable中

DataBase_Work object=new DataBase_Work(); 
     ResultSet rs2=object.Search_User(name); 
     String namee=rs2.getString("username"); 
     System.out.println(namee+"User name"); 

     if(rs2==null) 
     { 
      JOptionPane.showMessageDialog(null, "No Record Found Against the value", " Not Record Found", JOptionPane.ERROR_MESSAGE); 
     }  
     else 
     { 
     Show_all_User.setModel(DbUtils.resultSetToTableModel(rs2)); 
     } 
+0

“ResultSet”是一系列(或“集合”)结果,您需要迭代ResultSet来获取每个单独的行。查看[从结果集中检索和修改值](http://docs.oracle.com/javase/tutorial/jdbc/basics/retrieving.html)以获取更多详细信息 – MadProgrammer

回答

0

问题是你叫next()ResultSet检查,如果它不是空(返回之前),因此将光标已经过去第一条记录。如果该组仅包含一个条目,则当前行将无效并且getString返回null。

使用rs.first()而不是rs.next()来检查ResultSet是否为空。

+0

我已经使用rs.first(),但仍然结果是一样的 – Malik