0

重複の可能性:
Android 2.2で新しいデータベースを作成する前に、既存のデータベースを確認するにはどうすればよいですか?

起動時にデータベースの存在を確認するアプリがあります。終了しない場合は新しいものを作成し、存在する場合はデータベースにアクセスします。db(SQlite)の存在を確認する方法を教えてください。

4

3 に答える 3

0

SQLiteOpenHelperが呼び出されたときonCreateにtrue に設定されるブール フラグを使用します。ここで私の完全なコードを見つけることができます

于 2012-09-14T12:22:14.360 に答える
0

Android は、多くの開発者がデータベースを管理するのに役立ちます。次のようなクラスが必要です(1列のみの単一のテーブル):

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 メソッドを呼び出す) か、既に存在するデータベースを提供します。4 番目のパラメーターは、データベースのバージョンです。現在作成されているデータベースが最新バージョンでない場合、onUpgrade が呼び出されます。

EDIT:データベースパスは次のようになります:

/data/data/fr.mathis.application/databases/dbname.db
于 2012-09-14T12:25:57.670 に答える
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();
}

これで完了です:)

于 2012-09-14T13:25:16.153 に答える