当需要存储大量复杂的关系类型数据的时候,文件存储,和sharedPreference就显得抠脚了。
解决办法:数据库,Android内置的轻量型的数据库,SQLite
使用方法:
- 创建数据库: 为了方便的管理数据库,android提供了SQLiteOpenHelper帮助类,借助这个类可以非常简单的实现创建和升级。
- 构造方法四个参数:第一个参数是context,第二个参数是数据库名,第三个参数允许我们在查询数据的时候,返回一个cursor,一般传入空,第四个参数表示当前数据的版本号,可用于对数据进行升级操作。
- 建表语句
private static final String CREATE_COUNTRY ="create table Country("
+"id integer primary key autoincrement,"
+ "name text,"
+ "language text,"
+ "person integer,"
+ " area integer)";id integer primary key autoincrement 将id设置为主键,并设置为自增长的,(autoincrement)
- Integer表示整型
- real 表示浮点型
- text表示文本
blob表示二进制类型
保证在数据库创建完成的同时,还能成功创建表格
@Override
public void onCreate(SQLiteDatabase db) {
//创建CREATE_COUNTRY 表格
db.execSQL(CREATE_COUNTRY);
}
SQLiteOpenHelper还有俩个非常重要的方法,getReadableDatabase(),getWritableDatabase()
这两个方法可以创建和打开一个现有的数据库,(如果数据库以存在就打开,如果不存在,就创建一个)。
并返回一个对数据可读写的操作对象。不同的是,如果磁盘已满,前者会以只读的方式打开数据,而后者将会出现异常。
dataHelper = new DataHelper(MainActivity.this,"CountryInfo",null,1);
//将创建(或打开已有的)数据库
dataHelper.getWritableDatabase();
- 数据库文件夹会存放到data/data/< package name>/databases/ 目录下
- 该文件夹下会有俩个文件,一个是以数据库命名的文件,另一个是 数据库名.jourmal则是为了让数据库能够支持事务产生的临时文件,通常为0kb,
- CountryInfo是数据库名,下面的是它的临时日志文件
打开该数据库文件,就可以看到所建立的表了。
- 图我就不列出了,脑补一下。