没有为一条记录填充Jtable

时间:2014-07-25 21:35:14

标签: java mysql sql swing jtable

我正在研究我需要从数据库获取数据然后填充jtable的问题。我正在使用Query with like语句。问题是当查询与一条记录匹配时,我无法在表中看到任何记录。这是我的代码。

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

1 个答案:

答案 0 :(得分:0)

问题是你在next()上调用ResultSet来检查它是否为空(在返回之前),因此光标已经超过了第一条记录。如果集合只包含一个条目,则当前行将无效,getString将返回null。

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