2013-07-11 24 views
0

另一个字符串我有以下布局的数据库在MySQL比较数据库字段的值在Java

databasename:macfast 
table name:users 

columns 

    id, 
    user_name, 
    password, 
    fullName 

我想要从列USER_NAME所有的值,并检查各值与另外一个字符串,它是已经从TEXTFIELD检索到,但我不能(NullpointerException)。请帮帮我。

public void deleteFclty() { 

      PreparedStatement stmt = null; 
      ResultSet rs = null; 
      String username=removeText.getText(); 




    String qry = "SELECT user_name From users "; 
    try { 
     stmt = (PreparedStatement) connection.prepareStatement(qry); 


    rs = stmt.executeQuery(); 

    while (rs.next()) { 
      String check=(rs.getString("user_name")); 

      System.out.println(check); 


      if(check.equals(username)){ 

       Util.showErrorMessageDialog("EQUAL"); 

      }else{ 

        Util.showErrorMessageDialog("NOT EQUAL"); 
    } 
    } 
}catch (SQLException ex) { 
     Logger.getLogger(RemoveFaculty.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 
+0

NullPointerException发生在哪一行? – mthmulders

+0

什么都没发生.... –

+0

没有值为参数1指定....所以空点豁免 –

回答

1

问题与准备好的语句(你不把id放在语句中,应该在那里,而不是问号)。

另外,我会建议做条件为“username.equals(检查)”,这可以防止空指针异常。

+0

我只需要列(用户名)的值....我如何检索?只有我有一个输入是字符串准备来自textfield.thats我输入的用户名。我的计划是检查与相应的列值,如果输入的值是存在于数据库....等等....所以请为我做一个相应的preparedStatement –

+0

所以,你应该有如下所示的选择:“SELECT user_name From users”并通过值,如果你想这样做。否则,我会推荐这条语句“SELECT count(user_name)as cnt from user where user_name =?”然后调用stmt.setString(username)。 rs.getInt(“cnt”)应该返回数据库中有多少个用户名。 (如果大于零,则存在)。 – holmicz

+0

现在问题解决先生。但一个新的挑战......我如何检查textfields手动输入用户名目前在数据库或不...这就是我的新challenge.please帮助我 –

0

对于下面的评论你的问题:

List<String> values = new ArrayList(); 
while (rs.next()) { 
    values.add(0,rs.getString(<>)) 
} 
// here do whatever you want to do... 
// for example 
for (String value: values) 
{ 
    // check if value == TEXTFIELD 
    // if true then do something.. 
    // else don't do anything 
} 
+0

no.my数据库包含值.. –

+0

我想其他人都在这里帮助你。那么只有可能性是你的错误。你应该编辑你的问题,并指出在哪一行异常即将到来。 –

+0

先生pblm解决了...请检查我编辑的代码....它检查每个值,并给出输出..每次对话框弹出窗口...我想检查文本字段vaue是否在数据库中或...如何才能做到这一点?建议 –

1
"SELECT user_name From users where id=?" 

此查询有一个参数,你不设置任何价值。使用PreparedStatement#setInt()或类似的设置,例如:

stmt.setInt(1, 1); 
0

问题是与PreparedStatement的与您使用问号?在你的查询中,你必须设置Id值。

String qry = "SELECT user_name From users where id=?"; 
stmt = (PreparedStatement) connection.prepareStatement(qry); 
stmt.setInt(1,1001); 
rs = stmt.executeQuery(); 
+0

我如何检查textfields手动输入用户名目前在数据库或不...这就是我的新挑战。请帮助我 –

+0

@SaranyaSaru SO不是一个论坛。如果您有其他问题,请在单独的问题中发布。 – m0skit0