Example of android SQLite database
Let's see the simple example of android sqlite database.
File: Contact.java
- package com.example.sqlite;
- 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;
- }
- }
File: DatabaseHandler.java
Now, let's create the database handler class that extends SQLiteOpenHelper class and provides the implementation of its methods.- package com.example.sqlite;
- 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 {
- private static final int DATABASE_VERSION = 1;
- private static final String DATABASE_NAME = "contactsManager";
- private static final String TABLE_CONTACTS = "contacts";
- 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);
- //3rd argument to be passed is CursorFactory instance
- }
- // 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);
- }
- // code to add the 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);
- //2nd argument is String containing nullColumnHack
- db.close(); // Closing database connection
- }
- // code to get the 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;
- }
- // code to get all contacts in a list view
- 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;
- }
- // code to update the 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();
- }
- }
File: MainActivity.java
- package com.example.sqlite;
- import java.util.List;
- import android.os.Bundle;
- import android.app.Activity;
- import android.util.Log;
- import android.view.Menu;
- public class MainActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- DatabaseHandler db = new DatabaseHandler(this);
- // Inserting Contacts
- Log.d("Insert: ", "Inserting ..");
- db.addContact(new Contact("Ravi", "9100000000"));
- db.addContact(new Contact("Srinivas", "9199999999"));
- db.addContact(new Contact("Tommy", "9522222222"));
- db.addContact(new Contact("Karthik", "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);
- }
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.activity_main, menu);
- return true;
- }
- }
Output:
Open Logcat and see the output. It is the basic example of android sqlite without any GUI.For GUI application with android SQLite, visit next page.
No comments:
Post a Comment