ormlite更改数据库默认位置
前言
ormlite数据库默认放在databases下,有时候可能需要使用预置好数据的数据库,可能就需要更改默认路径了。
声明
欢迎转载,但请保留文章原始出处:)
博客园:http://www.cnblogs.com
农民伯伯: http://over140.cnblogs.com
正文
1、继承OrmLiteSqliteOpenHelper:
public class SQLiteHelperOrm extends OrmLiteSqliteOpenHelper {
public static final String DATABASE_PATH = Environment
.getExternalStorageDirectory() + "/test.db";
@Override
public synchronized SQLiteDatabase getWritableDatabase() {
return SQLiteDatabase.openDatabase(DATABASE_PATH, null,
SQLiteDatabase.OPEN_READWRITE);
}
public synchronized SQLiteDatabase getReadableDatabase() {
return SQLiteDatabase.openDatabase(DATABASE_PATH, null,
SQLiteDatabase.OPEN_READONLY);
}
public static final String DATABASE_PATH = Environment
.getExternalStorageDirectory() + "/test.db";
@Override
public synchronized SQLiteDatabase getWritableDatabase() {
return SQLiteDatabase.openDatabase(DATABASE_PATH, null,
SQLiteDatabase.OPEN_READWRITE);
}
public synchronized SQLiteDatabase getReadableDatabase() {
return SQLiteDatabase.openDatabase(DATABASE_PATH, null,
SQLiteDatabase.OPEN_READONLY);
}
代码说明:
注意这里覆盖了getWritableDatabase和getReadDatabase,并且没有super。
2、Application里面创建数据库
File f = new File(SQLiteHelperOrm.DATABASE_PATH);
if (!f.exists()) {
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(
SQLiteHelperOrm.DATABASE_PATH,null);
SQLiteHelperOrm orm = new SQLiteHelperOrm(this);
orm.onCreate(db);
db.close();
}
if (!f.exists()) {
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(
SQLiteHelperOrm.DATABASE_PATH,null);
SQLiteHelperOrm orm = new SQLiteHelperOrm(this);
orm.onCreate(db);
db.close();
}
注意close掉数据库。
结束
搜索过一次,没收到结果,过了一段时间又搜了一次,找到了类似的结果,感谢stackoverflow.com。