Android SQLite 数据库附加操作及使用指南
在 Android 中,可以使用 SQLiteOpenHelper 类来管理和操作 SQLite 数据库。要附加一个 SQLite 数据库,可以使用 ATTACH 命令。
以下是一个示例代码,演示如何在 Android 中附加一个 SQLite 数据库并使用它:
- 创建一个自定义的 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);
}
}
- 在需要使用附加数据库的地方,创建一个新的 DatabaseHelper 实例:
DatabaseHelper helper = new DatabaseHelper(context);
- 使用 getWritableDatabase() 方法获取可写的数据库对象:
SQLiteDatabase db = helper.getWritableDatabase();
- 使用 execSQL() 方法执行 ATTACH 命令,将要附加的数据库文件路径作为参数:
db.execSQL("ATTACH DATABASE '/path/to/attached_database.db' AS attachedDB");
- 附加后,可以使用 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();
- 操作完成后,记得关闭数据库连接:
db.close();
以上代码示例中,需要替换 '/path/to/attached_database.db' 为实际的附加数据库文件路径。另外,还可以使用 DETACH 命令来分离已附加的数据库:db.execSQL("DETACH DATABASE attachedDB")。
原文地址: https://www.cveoy.top/t/topic/n04t 著作权归作者所有。请勿转载和采集!