由 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(),导出文件,搞定。