sqlite是支持内存数据库的,在Android中,我们可以通过provider实现内存数据库操作。内存数据库的优点,访问速度快,但在连接关闭后,数据库自动消失(在android中的表现是,provider所在进程死了,内存库就没了)。应用场景,对于一次会话产生的临时数据或者密码等安全数据,这些数据仅想在应用运行期间有效,可以考虑用内存数据库。
在继承SQLiteOpenHelper的实现中,重载open方法,建立内存数据库与表。具体代码如下:
private static final String MEMORY_DBNAME = "temp_memory_db"; @Override public void onOpen(SQLiteDatabase db) { db.execSQL("ATTACH DATABASE ‘:memory:‘ AS " + MEMORY_DBNAME + ";"); db.execSQL("CREATE TABLE IF NOT EXISTS " + MEMORY_DBNAME + "." + Tables.MEMORY + " (" + MemoryColumns._ID + " INTEGER PRIMARY KEY REFERENCES concrete(_id)," + MemoryColumns.CONCRETE_UID + " TEXT," + MemoryColumns.PASSWORD + " TEXT);"); }
其他操作与实体库一致。详细操作请参考TestApk