Saranya Saru
Saranya Saru

Reputation: 33

compare database column values in mysql with another String in java

I have a database with the following layout

databasename:macfast
table name:users

columns

  id,
  user_name,
  password,
  fullName

I want to retrieve all the values from the column user_name and check each values with another one string which is already retrieved from a TEXTFIELD.But I can't(NullpointerException). Please help me.

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

Upvotes: 0

Views: 4821

Answers (4)

m0skit0
m0skit0

Reputation: 25873

"SELECT user_name From users where id=?"

This query has a parameter and you're not setting any value to it. Use PreparedStatement#setInt() or similar to set it, e.g.:

stmt.setInt(1, 1);

Upvotes: 1

Tyagi Akhilesh
Tyagi Akhilesh

Reputation: 860

For your question in comment below:

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
}

Upvotes: 0

loveleen
loveleen

Reputation: 19

The problem is with PreparedStatement as you are using Question mark ? in your query for that you have to set the Id value.

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

Upvotes: 0

holmicz
holmicz

Reputation: 577

Problem is with the prepared statement (you don't put id into statement, which should be there instead of question mark).

Also I would recommend to do condition as "username.equals(check)", that can prevent null pointer exception.

Upvotes: 2

Related Questions