Android數據存儲
在Android 平台中數據存儲有四種形式:
· 文件係統—— 可以把數據放到文件中保存起來,再使用 Java 的 IO 流技術實現對數據的讀取。
· 嵌入式數據庫 SQLite ——從性能編程的角度考慮,嵌入式數據庫是個不錯的選擇,例如我們的聯係人信息就是使用嵌入式數據庫。
· 網絡——如果我們的數據是海量的,還要通過複雜數學計算獲得,訪問的時候要嚴格安全限製,這種情況下這樣的把數據放在網絡上,例如天氣信息、交通實時信息等。
· Shared Preferences ——可以存放少量的數據,主要用於保存係統設置參數,例如控件的狀態、用戶使用偏好(背景、字體)設置等,一般而言它不會用來存放聯係人等應用程序的信息。
實現SQLite 數據庫訪問的DAO 代碼
public WeigthDaoSQLiteImp(Context ctx) {
mDBHelper = new DBHelper(ctx);
}
@Override
public void create(long date, String input, String output, String weight,
String amountExercise) {
SQLiteDatabase db = mDBHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(SysConst.TABLE_FIELD_DATE, date);
values.put(SysConst.TABLE_FIELD_INPUT, input);
values.put(SysConst.TABLE_FIELD_OUTPUT, output);
values.put(SysConst.TABLE_FIELD_WEIGHT, weight);
values.put(SysConst.TABLE_FIELD_AMOUNTEXERCISE, amountExercise);
long rowId = db.insert(SysConst.TABLE_NAME, null, values);
}
@Override
public void delete(long date) {
SQLiteDatabase db = mDBHelper.getWritableDatabase();
String whereClause = SysConst.TABLE_FIELD_DATE + " = " + date;
long rowId = db.delete(SysConst.TABLE_NAME, whereClause, null);
}
@Override
public Cursor findAll() {
SQLiteDatabase db = mDBHelper.getReadableDatabase();
return db.query(SysConst.TABLE_NAME, new String[] {
SysConst.TABLE_FIELD_DATE, SysConst.TABLE_FIELD_INPUT,
SysConst.TABLE_FIELD_OUTPUT, SysConst.TABLE_FIELD_WEIGHT,
SysConst.TABLE_FIELD_AMOUNTEXERCISE }, null, null, null, null,
SysConst.TABLE_FIELD_DATE + " asc");
}
@Override
public Cursor findByPrimaryKey(long date) {
SQLiteDatabase db = mDBHelper.getReadableDatabase();
String whereClause = SysConst.TABLE_FIELD_DATE + " = " + date;
return db.query(SysConst.TABLE_NAME, new String[] {
SysConst.TABLE_FIELD_DATE, SysConst.TABLE_FIELD_INPUT,
SysConst.TABLE_FIELD_OUTPUT, SysConst.TABLE_FIELD_WEIGHT,
SysConst.TABLE_FIELD_AMOUNTEXERCISE }, whereClause, null, null,
null, SysConst.TABLE_FIELD_DATE + " asc");
}
@Override
public void modify(long date, String input, String output, String weight,
String amountExercise) {
SQLiteDatabase db = mDBHelper.getWritableDatabase();
String whereClause = SysConst.TABLE_FIELD_DATE + " = " + date;
ContentValues values = new ContentValues();
values.put(SysConst.TABLE_FIELD_INPUT, input);
values.put(SysConst.TABLE_FIELD_OUTPUT, output);
values.put(SysConst.TABLE_FIELD_WEIGHT, weight);
values.put(SysConst.TABLE_FIELD_AMOUNTEXERCISE, amountExercise);
long rowId = db.update(SysConst.TABLE_NAME, values, whereClause, null);
}
class DBHelper extends SQLiteOpenHelper {
... ...
}
}
最後更新:2017-04-02 06:51:42