最近在做一个公众学习平台的项目,需要存储大量的数据到本地数据库,考虑到同一个台手机可能被多个人使用,为了提升数据库查询的效率,以分库的方式来存储不同账号的数据。这就需要动态创建数据库。经验证,一个android应用可以动态生成多个数据库并根据库名分别查询数据。
测试代码:
public class DataBaseUtil extends SQLiteOpenHelper {
// 动态数据库名称
private String DATABASE_NAME = "";
// 数据库版本号
private static final int DATABASE_VERSION = 1;
public DataBaseUtil(Context context, String dbName) {
super(context, dbName, null, DATABASE_VERSION);
DATABASE_NAME = dbName;
}
@Override
public void onCreate(SQLiteDatabase db) {
String tableSql = "create table if not exists testTable(_id integer primary key autoincrement,user_id integer,user_name varchar(20))"; <span style="white-space:pre"> </span>db.execSQL(tableSql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public long insert() {
String tableName = "testTable";
SQLiteDatabase database = getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("user_id", "1111");
cv.put("user_name", "测试");
long id = database.insert(tableName, null, cv);
database.close();
return id;
}
}