添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接


一、在android中数据本地存储分为SQLite数据存储,Sharedprferences数据的储存,File存储,ContentProvider、还有一种为网络(Network)

1、在这里主要就说明SQLite数据的存储, SQLite是轻量级嵌入式数据库引擎,它支持SQL语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目(Mozilla,PHP,Python)都使用了SQLite。SQLite由以下几个组件组成:SQL编译器、内核、后端以及附件。SQLite通过利用虚拟数据库引擎(VDBE)。使调试、修改和扩展SQLite的内核变得更加方便。

2、Android提供了SQLiteOpenHelper帮助创建一个数据库,只要继承SQLiteOpenHelper类,就可以创建数据库。SQLiteOpenHelper类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper的子类,至少需要实现三个方法。

a、构造函数,调用父类的SQLiteOpenHelper的构造函数。这个方法需要四个参数:上下文环境(例如,一个Activity),数据库名称,一个可选的游标工程(通常为null),一个代表正在使用的数据库模型版本的整数。

b、onCreate()方法,它需要一个SQLiteDatabase对象作为参数,根据需要对这个对象填充表和初始化数据。

c、onUpgrage()方法,它需要三个参数,一个SQLiteDatabase,一个旧的版本号和一个新的版本号,这样就可以清楚如何将一个数据库从旧的模型转变到新的模型。

3、如果要从数据库执行写入和读取的操作,就要别调用getWriteableDatabase()和getReadableDatabase(),两个都会返回一个表示数据库的SQLiteDatabase对象,并提供用于SQLite操作的方法。

4、当完成了对数据库的操作(加入Activity已经关闭),需要调用SQLiteDatabase的close()方法来释放掉数据库连接。为了创 建表和索引,需要调用SQLiteDatabase的execSQL()方法来执行DDL语句。如果没有异常,这个方法没有返回值。SQLite会自动为主键列创建索引。在这种情况下,第一次创建数据库时创建了表和索引。可以使用execSQL()方法执行INSERT、UPDATE、DELETE等语句来更新表的数据,还可以使用SQLiteDatabase对象的insert()、update()和delete()方法。

5、在update()方法中有四个参数,分别是表名,表示列名和值的ContentValues对象,可选的WHERE条件和可选的填充WHERE语句的字符串,这些字符串会替换WHERE条件中的”?”标记。

二、具体使用代码看使用到的方法

1、对SQLiteOpenHelper的实现

public class SQDBLiteHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME="test.db";
private static final int DATABASE_VERSION = 1;

public SQDBLiteHelper(Context context){
super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
//数据库第一次被创建时就会被onCreate调用
@Override
public void onCreate(SQLiteDatabase db) {
}

//数据库升级
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
//数据库降级
@Override
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}

2、进行在数据库中读取数据

Cursor c = db.rawQuery("SELECT * FROM person",null);
while (c.moveToNext()){
  ...
}
c.close();

3、插入数据

db.insert("person",null,values);

4、删除数据

db.delete("person", "age >= ?", new String[]{String.valueOf(person.age)});

5、修改数据

ContentValues cv = new ContentValues();
cv.put("age",person.age);
db.update("person", cv, "name = ?", new String[]{person.name});

以上 几点对于数据的增删改查。

三、这里就是代码实例

1、在demo中有SQLite数据存储,Sharedprferences数据的储存,等。

2、​ ​下载DEMO​