Created
January 5, 2017 03:06
-
-
Save prasad091/e5c43beeaef327d319f6ada28c8b34f4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DatabaseHandler db = new DatabaseHandler(this); | |
/** | |
* CRUD Operations | |
* */ | |
// 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); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment