在安卓开发中,经常会有上层界面与数据库的交互操作,而交互操作的前提是创建和调用数据库,SQLite作为一种嵌入式数据库,有着轻量和跨平台等优点,且安卓本身支持支持SQLite。
那么在实际开发中该如何调用数据库呢?
1、需要引入一些库,如下:
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
2、创建数据库:
private SQLiteDatabase db;//定义数据库变量
db = openOrCreateDatabase("MyDB", SQLiteDatabase.CREATE_IF_NECESSARY, null);// 创建或打开我们想要的数据库
3、创建数据表并定义其中的数据变量:
db.execSQL("Create Table Temp(x text,y text,z text)");// 创建新的数据表,括号中为列名及对应的变量类型
//定义变量数据类型及值:x1,y1,z1
ContentValues values = new ContentValues();
values.put("x", x1);// 插入x数据
values.put("y", y1);// 插入y数据
values.put("z", z1);// 插入z数据
......
db.insert("Temp", null, values);
4、查询数据表:
Cursor c = db.rawQuery("select * from Temp", null);// 查询数据,括号内根据查询需要也可以是其他待条件的语句
5、删除不需要的数据表:
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);// 删除已存在的数据表,TABLE_NAME为数据表名
6、这时就可以根据需要建立设置界面操作与底层数据库操作之间的关系了。
7、如果需要手动查看或导出数据库文件,可按如下操作进行:
首先手机必须是获得root权限并开启debug模式,再连接手机后打开命令行窗口
依次输入以下命令:
adb remount(如果我未开启adb调试工具,则先输入adb start-server来开启)
adb shell
cd data/data
cd xxx(程序包名)
cd databases
ls -l(查看有哪些数据库文件)
sqlite3 xxx.db(要打开的数据库名)
.tables(查看有哪些数据表)
select * from xxx(要查询的数据表名)
或者在开发工具中使用DDMS导出sqlite数据库:
1)首先打开android项目的调试模式,然后找到显示DDMS:选择DDMS
2)切换到DDMS,显示File Explorer窗口,找到/data/data/
然后找到程序包的文件夹,打开databases,就能看到sqlite数据库文件了,选择将其导出
3)导出后,可以用SQLite Expert等工具打开查看里面的数据。