Android Database Storage (SQLite)

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]

Septu Jamasoka has written 23 articles

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>