可能重复:
How to check existing database before creating new database on Android 2.2?
我有一个应用程序,可以在启动时检查数据库是否存在。如果不是退出,则创建一个新的,然后再访问数据库。你能告诉我如何检查db(SQlite)的存在吗?
答案 0 :(得分:0)
请参阅此链接,希望它能帮助您..
http://www.itsalif.info/content/check-if-database-exist-android-sqlite3openv2-failed
答案 1 :(得分:0)
我使用一个布尔标志,当调用SQLiteOpenHelper的onCreate
时,该标志设置为true。您可以找到我的完整代码here
答案 2 :(得分:0)
Android帮助很多开发人员管理数据库。 你应该有一个这样的类(一个只有一列的表):
public class MyDBOpenHelper extends SQLiteOpenHelper {
private static final String queryCreationBdd = "CREATE TABLE partie (id INTEGER PRIMARY KEY)";
public MyDBOpenHelper(Context context, String name, CursorFactory factory, int version)
{
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL(queryCreationBdd);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("DROP TABLE partie;");
db.execSQL("DELETE FROM sqlite_sequence"); //table which contains the next incremented key value
onCreate(db);
}
}
然后你就这样做了:
MyDBOpenHelper databaseHelper = new MyDBOpenHelper(context, "dbname.db", null, 1);
SQLiteDatabase bdd = databaseHelper .getWritableDatabase();
如有必要,Android将创建数据库(调用onCreate方法)或为您提供已存在的数据库。第四个参数是数据库的版本。如果当前创建的数据库不是最新版本,则将调用onUpgrade。
编辑:数据库路径将是这样的:
/data/data/fr.mathis.application/databases/dbname.db
答案 3 :(得分:0)
查看query-if-android-database-exists
使用数据库的路径在try块中打开数据库,如:
try{
SQLiteDatabase dbe = SQLiteDatabase.openDatabase("/data/data/bangla.rana.fahim/databases/dictionary", null,0);
Log.d("opendb","EXIST");
dbe.close();
}
如果发生异常,则数据库不存在,因此创建它:
catch(SQLiteException e){
Log.d("opendb","NOT EXIST");
SQLiteDatabase db = openOrCreateDatabase("dictionary", MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS LIST(wlist varchar);");
db.execSQL("INSERT INTO LIST VALUES('খবর');");
db.execSQL("INSERT INTO LIST VALUES('কবর');"); //whatever you want
db.close();
}
就是你完成了:)