title: Android SQLite search by name
body: <p>I took an example for working with SQLite in Android from here: <a href="http://www.cnblogs.com/pangblog/p/3327696.html" rel="noreferrer">http://www.cnblogs.com/pangblog/p/3327696.html</a></p>
  
  <p>And I strugle with getting contact by name. How can I change GetContact function to search by name?</p>
  
  <p><strong>DatabaseHandler:</strong></p>
  
  <pre><code>public class DatabaseHandler extends SQLiteOpenHelper {
  
      //Database Version 
      private static final int DATABASE_VERSION = 1;
  
      //Database Name
      private static final String DATABASE_NAME = "contactsManager";
  
      //Contacts table name 
      private static final String TABLE_CONTACTS = "contacts";
  
      //Contacts Table Columns names 
      private static final String KEY_ID = "id";
      private static final String KEY_NAME = "name";
      private static final String KEY_PH_NUM = "phone_number";
  
      public DatabaseHandler(Context context) {
          super(context, DATABASE_NAME, null, DATABASE_VERSION);
      }
  
      // Creating Tables : CREATE TABLE table_name (column_name column_type);
      @Override
      public void onCreate(SQLiteDatabase db) {
          String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
                  + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
                  + KEY_PH_NUM + " TEXT" + ")";       
          db.execSQL(CREATE_CONTACTS_TABLE);
      }
  
      // Upgrading database
      @Override
      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
          // Drop older table if existed 
          db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
  
          // Create tables again
          onCreate(db);
      }   
  
  
      //Adding new contact 
      void addContact(Contact contact) {
          SQLiteDatabase db = this.getWritableDatabase();
  
          ContentValues values = new ContentValues();
          values.put(KEY_NAME, contact.getName()); // Contact Name
          values.put(KEY_PH_NUM, contact.getPhoneNumber()); // Contact Phone
  
          // Inserting Row
          db.insert(TABLE_CONTACTS, null, values);
          db.close(); // Closing database connection
      }
  
      // Getting single contact 
      Contact getContact(int id) {
          SQLiteDatabase db = this.getReadableDatabase();
  
          Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
                  KEY_NAME, KEY_PH_NUM }, KEY_ID + "=?",
                  new String[] { String.valueOf(id) }, null, null, null, null);
          if (cursor != null)
              cursor.moveToFirst();
  
          Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
                  cursor.getString(1), cursor.getString(2));
  
          return contact;
      }
  
      // Getting All Contacts
      public List&lt;Contact&gt; getAllContacts() {
          List&lt;Contact&gt; contactList = new ArrayList&lt;Contact&gt;();
          // Select All Query ：SELECT * FROM tableName WHERE criteria
          String selectQuery = "SELECT  * FROM " + TABLE_CONTACTS;
  
          SQLiteDatabase db = this.getWritableDatabase();
          Cursor cursor = db.rawQuery(selectQuery, null);
  
          // looping through all rows and adding to list
          if (cursor.moveToFirst()) {
              do {
                  Contact contact = new Contact();
                  contact.setID(Integer.parseInt(cursor.getString(0)));
                  contact.setName(cursor.getString(1));
                  contact.setPhoneNumber(cursor.getString(2));
                  // Adding contact to list
                  contactList.add(contact);
              } while (cursor.moveToNext());
          }
  
          return contactList;
      }
  
  
  }
  </code></pre>
  
  <p><strong>Contact:</strong></p>
  
  <pre><code>public class Contact {
  
      int _id;
      String _name;
      String _phone_number;
  
  
      public Contact() {
  
      }
  
  
      public Contact(int id, String name, String phone_number) {
          this._id = id;
          this._name = name;
          this._phone_number = phone_number;
      }
  
  
      public Contact(String name, String phone_number) {
          this._name = name;
          this._phone_number = phone_number;
      }
  
      public int getID() {
          return this._id;
      }
  
      public void setID(int id) {
          this._id = id;
      }
  
      public String getName() {
          return this._name;
      }
  
      public void setName(String name) {
          this._name = name;
      }
  
      public String getPhoneNumber() {
          return this._phone_number;
      }
  
      public void setPhoneNumber(String phone_number) {
          this._phone_number = phone_number;
      }
  
  
  }
  </code></pre>