Android SQLite Tutorial

Example of SQLite Database for android.


AndroidSQLiteTutorialActivity.java

package com.androidhive.androidsqlite;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class AndroidSQLiteTutorialActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        DatabaseHandler db = new DatabaseHandler(this);
       
        /**
         * CRUD Operations
         * */
        // Inserting Contacts
        Log.d("Insert: ", "Inserting ..");
        db.addContact(new Contact("Sandy", "9100000000"));
        db.addContact(new Contact("Darshak", "9199999999"));
        db.addContact(new Contact("Keyur", "9522222222"));
        db.addContact(new Contact("Raj", "9533333333"));

        // Reading all contacts
        Log.d("Reading: ", "Reading all contacts..");
        List<Contact> contacts = db.getAllContacts();      

        for (Contact cn : contacts) {
            String log = "Id: "+cn.getID()+" ,Name: " + cn.getName() + " ,Phone: " + cn.getPhoneNumber();
                // Writing Contacts to log
        Log.d("Name: ", log);
       
        }
    }
}


Contact.java

package com.androidhive.androidsqlite;
public class Contact {

 //private variables
 int _id;
 String _name;
 String _phone_number;

 // Empty constructor
 public Contact(){

 }
 // constructor
 public Contact(int id, String name, String _phone_number){
  this._id = id;
  this._name = name;
  this._phone_number = _phone_number;
 }

 // constructor
 public Contact(String name, String _phone_number){
  this._name = name;
  this._phone_number = _phone_number;
 }
 // getting ID
 public int getID(){
  return this._id;
 }

 // setting id
 public void setID(int id){
  this._id = id;
 }

 // getting name
 public String getName(){
  return this._name;
 }

 // setting name
 public void setName(String name){
  this._name = name;
 }

 // getting phone number
 public String getPhoneNumber(){
  return this._phone_number;
 }

 // setting phone number
 public void setPhoneNumber(String phone_number){
  this._phone_number = phone_number;
 }
}


DatabaseHandler.java

package com.androidhive.androidsqlite;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHandler extends SQLiteOpenHelper {
 // All Static variables
 // 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_NO = "phone_number";
 public DatabaseHandler(Context context) {
  super(context, DATABASE_NAME, null, DATABASE_VERSION);
 }
 // Creating Tables
 @Override
 public void onCreate(SQLiteDatabase db) {
  String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
    + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
    + KEY_PH_NO + " 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);
 }
 /**
  * All CRUD(Create, Read, Update, Delete) Operations
  */
 // 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_NO, 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_NO }, 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
  return contact;
 }

 // Getting All Contacts
 public List<Contact> getAllContacts() {
  List<Contact> contactList = new ArrayList<Contact>();
  // Select All Query
  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 contact list
  return contactList;
 }
 // Updating single contact
 public int updateContact(Contact contact) {
  SQLiteDatabase db = this.getWritableDatabase();
  ContentValues values = new ContentValues();
  values.put(KEY_NAME, contact.getName());
  values.put(KEY_PH_NO, contact.getPhoneNumber());
  // updating row
  return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
    new String[] { String.valueOf(contact.getID()) });
 }
 // Deleting single contact
 public void deleteContact(Contact contact) {
  SQLiteDatabase db = this.getWritableDatabase();
  db.delete(TABLE_CONTACTS, KEY_ID + " = ?",
    new String[] { String.valueOf(contact.getID()) });
  db.close();
 }

 // Getting contacts Count
 public int getContactsCount() {
  String countQuery = "SELECT  * FROM " + TABLE_CONTACTS;
  SQLiteDatabase db = this.getReadableDatabase();
  Cursor cursor = db.rawQuery(countQuery, null);
  cursor.close();
  // return count
  return cursor.getCount();
 }
}


main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="
http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/demot"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

</LinearLayout>


Comments

Popular posts from this blog

Horizontal ListView Tutorial

Android Video Capture Tutorial

Analog Clock Widget Tutorial