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);
}
@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);
}
@Override
public
void
onUpgrade(SQLiteDatabase db,
int
oldVersion,
int
newVersion) {
db.execSQL(
"DROP TABLE IF EXISTS "
+ TABLE_CONTACTS);
onCreate(db);
}
/**
* All CRUD(Create, Read, Update, Delete) Operations
*/
void
addContact(Contact contact) {
SQLiteDatabase db =
this
.getWritableDatabase();
ContentValues values =
new
ContentValues();
values.put(KEY_NAME, contact.getName());
values.put(KEY_PH_NO, contact.getPhoneNumber());
db.insert(TABLE_CONTACTS,
null
, values);
db.close();
}
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;
}
public
List getAllContacts() {
List contactList =
new
ArrayList();
String selectQuery =
"SELECT * FROM "
+ TABLE_CONTACTS;
SQLiteDatabase db =
this
.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery,
null
);
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
));
contactList.add(contact);
}
while
(cursor.moveToNext());
}
return
contactList;
}
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());
return
db.update(TABLE_CONTACTS, values, KEY_ID +
" = ?"
,
new
String[] { String.valueOf(contact.getID()) });
}
public
void
deleteContact(Contact contact) {
SQLiteDatabase db =
this
.getWritableDatabase();
db.delete(TABLE_CONTACTS, KEY_ID +
" = ?"
,
new
String[] { String.valueOf(contact.getID()) });
db.close();
}
public
int
getContactsCount() {
String countQuery =
"SELECT * FROM "
+ TABLE_CONTACTS;
SQLiteDatabase db =
this
.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery,
null
);
cursor.close();
return
cursor.getCount();
}
}