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 {

... ...

}



}

出自《Android开发案例驱动教程》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值