2013-07-22 33 views
0

我有一个表'admin'.But数据库,但目前只是创建表没有任何values.table列是user_name和password.My的动机是检查表是否为空或不。我正在使用MySQL数据库。我试着下面的代码,它的失败。请帮助我。如何检查数据库表是否为空

public void nullCheck() { 

    PreparedStatement stmt = null; 
    ResultSet rs = null; 
    String qry = "SELECT * From admin "; 

    try { 
     stmt = (PreparedStatement) conn.prepareStatement(qry); 
     rs = stmt.executeQuery(); 

     boolean empty = true; 
     while(rs.next()) { 
      // ResultSet processing here 
      empty = false; 
     } 
     if(empty) { 
      Util.showWarningMessageDialog("null"); 
     } 
    } catch (SQLException ex) { 
     Logger.getLogger(RemoveFaculty.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 
+0

你得到什么错误/异常? – sanbhat

+0

你正在收到什么错误? – Jaguar

+0

如果你想知道的是表是否为空,一个更有效的查询将是'SELECT id FROM admin LIMIT 1',其中'id'是'admin'表的任何PK字段。 – yshavit

回答

0

如果你只需要检查表,那么你应该使用查询:

String qry = "SELECT count(*) From admin "; 

获得更好的性能。 并从ResultSet中获取行计数以检查表是否为null。

int count=0; 
while(rs.next()) 
{ 
    count=rs.getInt("count"); 
} 
+1

'count(*)'在某些引擎中表现不佳,其中包括Inno,这是目前的默认设置。 – yshavit

+0

如果您选择单个行(“限制1”),并且检查以确保获得某些东西,您会更加安全。 –