閱讀77 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

  上一篇:go 橫豎屏切換時候Activity的生命周期
  下一篇:go 搜索引擎優化排名因素小結