Membuat Database dan Table
Contract Class (table, and column name)
[code lang=”java”]
public final class SPBGContract {
// To prevent someone from accidentally instantiating the contract class,
// give it an empty constructor.
public SPBGContract() {}
/* Inner class that defines the table contents */
public static abstract class SPBG implements BaseColumns {
public static final String TABLE_NAME = "SPBG";
public static final String COLUMN_NAME_ID = "id";
public static final String COLUMN_NAME_NAME = "name";
public static final String COLUMN_NAME_ADDRESS = "address";
public static final String COLUMN_NAME_CITY = "city";
public static final String COLUMN_NAME_IMAGE_NAME = "imageName";
}
}
[/code]
SQLHelper Class
[code lang=”java”]
public class SPBGDbHelper extends SQLiteOpenHelper {
private static final String TEXT_TYPE = " TEXT";
private static final String INTEGER_TYPE = " INTEGER";
private static final String COMMA_SEP = ",";
private static final String SQL_CREATE_ENTRIES =
"CREATE TABLE " + SPBGContract.SPBG.TABLE_NAME + " (" +
SPBGContract.SPBG._ID + " INTEGER PRIMARY KEY," +
SPBGContract.SPBG.COLUMN_NAME_ID + INTEGER_TYPE + COMMA_SEP +
SPBGContract.SPBG.COLUMN_NAME_NAME + TEXT_TYPE + COMMA_SEP +
SPBGContract.SPBG.COLUMN_NAME_ADDRESS + TEXT_TYPE + COMMA_SEP +
SPBGContract.SPBG.COLUMN_NAME_CITY + TEXT_TYPE + COMMA_SEP +
SPBGContract.SPBG.COLUMN_NAME_IMAGE_NAME + TEXT_TYPE + " )";
private static final String SQL_DELETE_ENTRIES =
"DROP TABLE IF EXISTS " + SPBGContract.SPBG.TABLE_NAME;
// If you change the database schema, you must increment the database version.
public static final int DATABASE_VERSION = 2;
public static final String DATABASE_NAME = "cng.db";
public SPBGDbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL(SQL_CREATE_ENTRIES);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// This database is only a cache for online data, so its upgrade policy is
// to simply to discard the data and start over
db.execSQL(SQL_DELETE_ENTRIES);
onCreate(db);
}
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onUpgrade(db, oldVersion, newVersion);
}
}
[/code]
Membaca dari Database
[code lang=”java”]
public ServiceList readFromDb() {
// retrieve data
SQLiteDatabase db = dbHelper.getReadableDatabase();
// Define a projection that specifies which columns from the database
// you will actually use after this query.
String[] projection = {
SPBGContract.SPBG._ID,
SPBGContract.SPBG.COLUMN_NAME_ID,
SPBGContract.SPBG.COLUMN_NAME_NAME,
SPBGContract.SPBG.COLUMN_NAME_ADDRESS,
SPBGContract.SPBG.COLUMN_NAME_CITY,
SPBGContract.SPBG.COLUMN_NAME_IMAGE_NAME
};
// How you want the results sorted in the resulting Cursor
String sortOrder =
SPBGContract.SPBG.COLUMN_NAME_NAME + " ASC";
Cursor c = db.query(
SPBGContract.SPBG.TABLE_NAME, // The table to query
projection, // The columns to return
null, // The columns for the WHERE clause
null, // The values for the WHERE clause
null, // don’t group the rows
null, // don’t filter by row groups
sortOrder // The sort order
);
ServiceList serviceList = new ServiceList();
serviceList.total = 0;
serviceList.data = new ArrayList();
while(c.moveToNext()) {
SPBG spbg = new SPBG();
spbg.address = c.getString(c.getColumnIndexOrThrow(SPBGContract.SPBG.COLUMN_NAME_ADDRESS));
spbg.name = c.getString(c.getColumnIndexOrThrow(SPBGContract.SPBG.COLUMN_NAME_NAME));
spbg.city = c.getString(c.getColumnIndexOrThrow(SPBGContract.SPBG.COLUMN_NAME_CITY));
spbg.imageUrl = c.getString(c.getColumnIndexOrThrow(SPBGContract.SPBG.COLUMN_NAME_IMAGE_NAME));
serviceList.data.add(spbg);
}
return serviceList;
}
[/code]
Menulis ke Database
[code lang=”java”]
public void writeToDb(ServiceList serviceList) {
// Gets the data repository in write mode
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.delete(SPBGContract.SPBG.TABLE_NAME, null, null);
for (SPBG spbgData : (List<SPBG>)serviceList.data){
// Create a new map of values, where column names are the keys
ContentValues values = new ContentValues();
values.put(SPBGContract.SPBG.COLUMN_NAME_ID, spbgData.id);
values.put(SPBGContract.SPBG.COLUMN_NAME_NAME, spbgData.name);
values.put(SPBGContract.SPBG.COLUMN_NAME_ADDRESS, spbgData.address);
values.put(SPBGContract.SPBG.COLUMN_NAME_CITY, spbgData.city);
values.put(SPBGContract.SPBG.COLUMN_NAME_IMAGE_NAME, spbgData.imageUrl);
// Insert the new row, returning the primary key value of the new row
long newRowId;
newRowId = db.insert(
SPBGContract.SPBG.TABLE_NAME,
null,
values);
}
}
[/code]