由 SQL 语句生成 DB 文件的思路,在 Android 里其实挺实用的,尤其是你想提前把数据库结构准备好、减少运行时的初始化开销。用SQLiteOpenHelper
搭配 SQL 语句,一步到位地建好表,整个过程不复杂,但挺讲究细节的。你只要写好 SQL 语句,剩下的事情交给 Android 自带的SQLite
框架就行了。
SQLite 数据库是 Android 原生支持的,轻量又高效,平时做增删改查都靠它。关键是它生成的是标准的.db
文件,移植、备份都方便。你平常看到的your_db_name.db
文件,其实就藏在应用私有目录里,不显山不露水。
要创建数据库,直接写个SQLiteOpenHelper
的子类就行。比如:
public class DatabaseHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "your_db_name.db";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createTableSql = "CREATE TABLE IF NOT EXISTS your_table (id INTEGER PRIMARY KEY, column1 TEXT, column2 INTEGER)";
db.execSQL(createTableSql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 升级操作
}
}
最核心的就是onCreate()
里的db.execSQL()
,你要新建几个表,就在这里写好 SQL 语句,一次搞定。平时开发的时候,表结构一旦定好,其实用这种方式还蛮省心的。
还有个技巧,多人没注意——DB 文件是可以导出的。你可以通过文件操作把.db
文件复制出来,比如备份用、调试用或者直接在 PC 端用工具打开。像DB Browser for SQLite
就挺好用,界面直观,点几下就能看懂数据结构。
如果你是从外部导入 DB 文件,注意要把它先拷到私有目录下,再让SQLiteOpenHelper
指向它。文件路径的上记得区分下 Android 版本权限,尤其是用到外部存储的时候,要加READ/WRITE_EXTERNAL_STORAGE
权限,不然直接崩。
额外提一句,如果你懒得手写 SQL,想更方便管理数据库内容,可以看看SQLiteExpert,操作界面比较直观,对 Android 开发还挺友好的。
如果你项目里数据库结构比较固定,或者想快速初始化测试数据,这种通过 SQL 生成.db
文件的方式真的蛮高效的。写好 SQL、调用execSQL()
,导出文件,搞定。