[Android]DDMS查看app保存的Sqlite数据库db文件和db升级
@Author GQ 2017年06月06日
项目的app中大多需要用到本地sqlite存储,所以需要看到自己是否保存成功和数据库字段等属性
db的存储位置
保存在相应的app包下,例如:
/data/data/com.example.test/databases/db
但是默认是没有权限打开ddms中 /data文件夹的,所以我们需要手动改一下权限 :
chmod 777 /data
具体如下图:
- 然后就可以找到
data/data/com.example.test/databases
下的db文件
选择了文件就可以导入和导出了
db查看器
- 我这里使用的是这个sqlite Viewer
GitHub原文:https://github.com/isee15/Sqlite-Viewer
然后把刚才导出的db拖进去就可以查看了:
具体其他细节自行探索!
项目中对db的升级
- 比如当前db的版本是1.0 如果升级到2.0的时候需要增加或删减某些字段或者是其他操作
//重写onUpgrade()方法加载一个patch.sql文件
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
//数据库升级
try {
InputStream in = ImageActivity.this.getAssets().open("patch.sql");
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(in));
String sqlUpdate = null;
while ((sqlUpdate = bufferedReader.readLine()) != null) {
if (!TextUtils.isEmpty(sqlUpdate)) {
sqLiteDatabase.execSQL(sqlUpdate);
}
}
bufferedReader.close();
in.close();
} catch (Exception e) {
System.out.println(e.toString());
}
}
- patch.sql
//假设我增加了一列名为"新标题",可以根据需要自己编写sql语句
ALTER TABLE 'selling'
ADD COLUMN 'newTitle' varchar(20) NULL DEFAULT '0' AFTER 'title';