在 Android 中,可以使用 SQLiteOpenHelper 类来管理和操作 SQLite 数据库。要附加一个 SQLite 数据库,可以使用 ATTACH 命令。

以下是一个示例代码,演示如何在 Android 中附加一个 SQLite 数据库并使用它:

  1. 创建一个自定义的 SQLiteOpenHelper 类,用于管理和操作数据库:
public class DatabaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = 'mydatabase.db';
    private static final int DATABASE_VERSION = 1;

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // 创建数据库表
        db.execSQL("CREATE TABLE IF NOT EXISTS table1 (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)");
        db.execSQL("CREATE TABLE IF NOT EXISTS table2 (id INTEGER PRIMARY KEY AUTOINCREMENT, age INTEGER)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // 升级数据库
        db.execSQL("DROP TABLE IF EXISTS table1");
        db.execSQL("DROP TABLE IF EXISTS table2");
        onCreate(db);
    }
}
  1. 在需要使用附加数据库的地方,创建一个新的 DatabaseHelper 实例:
DatabaseHelper helper = new DatabaseHelper(context);
  1. 使用 getWritableDatabase() 方法获取可写的数据库对象:
SQLiteDatabase db = helper.getWritableDatabase();
  1. 使用 execSQL() 方法执行 ATTACH 命令,将要附加的数据库文件路径作为参数:
db.execSQL("ATTACH DATABASE '/path/to/attached_database.db' AS attachedDB");
  1. 附加后,可以使用 SELECT、INSERT、UPDATE 等 SQL 语句来操作附加的数据库:
Cursor cursor = db.rawQuery("SELECT * FROM attachedDB.table1", null);
if (cursor.moveToFirst()) {
    do {
        // 处理查询结果
        String name = cursor.getString(cursor.getColumnIndex("name"));
        // ...
    } while (cursor.moveToNext());
}
cursor.close();
  1. 操作完成后,记得关闭数据库连接:
db.close();

以上代码示例中,需要替换 '/path/to/attached_database.db' 为实际的附加数据库文件路径。另外,还可以使用 DETACH 命令来分离已附加的数据库:db.execSQL("DETACH DATABASE attachedDB")。

Android SQLite 数据库附加操作及使用指南

原文地址: https://www.cveoy.top/t/topic/n04t 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录