android数据存储

来源:互联网 发布:风驰网络加速器 官网 编辑:程序博客网 时间:2024/04/29 13:04

1 android作为一种手机操作系统,提供了如下几种存储数据的方式
1 >Preference(配置)
2>File(文件)
3>Sqlite数据和网络
android中各个应用程序组件之间是相互独立的,彼此的数据不能共享,为了实现数据共享,提供了ContentProvider组件

1 Preference方式来存储数据
1)键值对的方式将数据保存在XML配置文件中
用到了SharedPreference接口和SharedPreferences的一个内部接口SharedPreferences.Editor
2)应用实例
保存临时短信
3)使用方法
在onCreate()中通过getSharedPreference方法,获得SharedPreferences接口,调用getString()
在onStop()中使用getSharedPreference.edit()方法获得SharedPreference.edit()接口,调用putString()方法保留,在调用commint()方法提交内容

2 File
我们可以将一些数据直接以文件的形式保存在设备中,通过openfile方法获得输入输出流,使用openRawResource方法返回inputStream。

3 Sqlite

SqliteDatabase代表一个数据库对象,提供了操作数据库的一些方法,另外还有一个SQLiteOpenHelper工具类提供其他功能
使用:
1 打开或者创建数据库
SqliteDatabase.openOrCreateDatabase(1,2)
第一个参数是指定数据库的全路径,第二个参数是指定返回一个Cursor子类的工厂,如果没有则使用NULL
2 创建表
例子:
SQliteDatabase db
String sql =“create table UserTbl(_id integer primary key autoincrement ,username text,password text)”;
db.execSQL(sql);
3 插入数据
String sql="insert into UserTbl(username,password)values('amaker','123')";
db.execSQL(sql);
ContentValues cv=new ContentValues();
cv.put("username","ghz");
cv.put("password","456");
db.insert("UserTbl",null,cv);
4 删除数据
sql=“delete from UserTbl where _id=2”
String whereClause="_id=?"
String[] whereArgs={String.valueOf(1)};
db.delete("UserTbl",whereClause,whereArgs);
5 查询方法
Cursor query(table,String[] columns,String selection,String[] selectionArgs,String grupBy,Sting having,String orderBy,String limit)
6 修改数据
sql="update userTbl set password=888 where _id=1"

values.put("password","999")
WhereClause="_id=?"
String[] whereArgs={String.valueOf(1)};
db.update("UserTbl",values,WhereClause,WhereArgs);

values.put("password","999");
SQliteOpenHelper
1 onCreate(SQliteDatabase db)//创建数据库时调用
{

}
2 onUpgrade(SqliteDatebase db,int oldversion, int new)//版本更新时掉用

getReadbleDatabase()//只读数据库
getWritableDatabase()//读写数据库