Android存储方式
存储偏好设置
- 持久化数据:使应用程序运行时需要长期保存一些数据。
- SharePreferences对象、文件和 SQLite数据库来存储这些持久化数据
存取活动的偏好设置
- SharePreferences类属于Android.cntent包,可以用来存储少量简单的应用程序的数据,这些存储数据类似Bundle对象的键值与对应值,支持Boolean、Float、Integer、Long、String类型的数据。
- 取得SharePreferences对象:在oncreate中得到private SharePreferences prefs = getPreference(MODE_PRIVATE);
- 读取偏好设置数据:String amout = prefs.getString(PREF_AMOUNT,”10000”);
txtAmount.setText(amount);
float rate = prefs.getFloat(PREF_RATE,28.9F);(第一个参数键值,第二个参数是默认值)
txtRate.setText(String.valueOf(rate));
- 存储偏好设置数据:重写onpause方法,通过SharePreferences。Editor对象来编辑存入的数据,SharePreferences.Editor prefEdit = prefs.edit(); 然后使用putString()、putInt()、putFloat()等方法存入字符串、整数、浮点型OUNT,txtAmount.getText().toString());
Float rate;
Rate = (float)Doule.parseDouble(
txtRate.getText().toString());
prefEdit.putFloat(PREF_RATE,rate);
- 最后使用prefEdit.commit();将数据写入偏好设置文件
关系型数据库与SQLite
- 使用SQLiteOpenHelper类创建数据库与数据表
SQLiteOpenHelper类是一个帮助我们访问SQLite数据库的帮助类,我们需要继承此类,通过继承类来创建SQLite数据表和版本管理,创建的数据库是一个SQLiteDatabase类的对象。
- 继承SQLiteOpenHelper类
Android应用程序创建SQlite数据库就是继承SQLiteOpenHelper类重写方法,就是让我们可以下 SQLite中可以添加新表,我们需要在继承类中添加构造方法。
super(content对象,数据库名称,创建Cursor对象,版本的整数值)
oncreat(创建的SQLiteDatabase数据库对象)
onupgrade(创建的SQLiteDatabase数据库对象,int,int)
- SQLiteOpenHelper类的相关方法
方法 | 说明 |
getReadableDatabase() | 创建或开启一个只读数据库,成功开启返回SQLiteDatebase对象 |
GetWriteDatebbase() | 创建或开启一个可读写数据库,成功开启返回SQLiteDatebase对象 |
Close() | 关闭开启的数据库 |
使用SQLiteDatabase类访问数据表的记录数据
- 打开可读数据库
DBHelper = new MyDBHelper(this);
Db = dbHelper.getWritetableDatabase();
- 关闭数据库
通常在onstop中通过SqlLitedatabase类的close方法关闭数据库
- 新增记录
SQLLiteDatabase对象通过Insert()方法来新增记录
Long id;
ContentValue cv = new ContentValues();
Cv.put(“title”,txttitle.getText().toString());
Double price = Double.parseDouble(txtprice.getText().toString());
cv.put(“price”,price);
id = db.insert(“数据表名称,null,ContentValues对象”);
- 更新数据
SQLLiteDatabase对象通过Insert()方法来新增记录
Long id;
ContentValue cv = new ContentValues();
Cv.put(“title”,txttitle.getText().toString());
Double price = Double.parseDouble(txtprice.getText().toString());
cv.put(“price”,price);
id = db.insert(“数据表名称,null,ContentValues对象”);
- SQLLiteDatabase对象可以使用delete()方法删除记录,
Content = db.delete(DATABASE_TABLE,”title=’”+title+”’”,null);
(数据表的名称,where子句的删除条件,如果是参数条件字符串,其参数值就是最后一个参数。)
- 查询数据
SQLiteDatabase对象可以使用query()方法来记录
Cursor c = db.query(DATABASE_TABLE,colNames,null,null,null,null,null);
Query的参数有八个
编号: | 参数对象: | 说明: |
1 | 数据表 | 查询数据表的名称 |
2 | 字段 | 字段列表的数组 |
3 | 筛选条件 | 记录筛选条件,即where语句 |
4 | 参数筛选条件 |
|
5 | 分组 | 分组纪录 |
6 | 分组筛选 | 设置分组筛选条件 |
7 | 排序条件 | 设置排序字段 |
8 | 限制的记录数 | 只返回限制的记录数 |