0

を使用して内部で作成された2つのテーブルを持つデータベースを持つアプリケーションを構築していますSQLiteOpenHelper。アプリケーションが実行されるたびに、データを受信して​​テーブルに保存します。アプリケーションの起動時にデータテーブルをクリアする必要がありますか?

この投稿を調べましたアプリケーションを起動するたびにSQLiteデータベースをクリアするにはどうすればよいですか?これは、アプリケーションの使用方法が明確ではありません。

4

2 に答える 2

2

SQLiteOpenHelperには、コンストラクターにaを渡すと、インメモリデータベースを作成する機能がありますnull name。おそらくこれはあなたが探しているものです。

例えば:

SQLiteOpenHelper sqloh = new SQLiteOpenHelper(context, null, null, 1);
SQLiteDatabase sqldb = sqloh.getWritableDatabase();

インメモリデータベースを作成します。

于 2012-08-13T23:29:09.677 に答える
1

SqliteDatabaseは、メソッドopenOrCreate(...)を使用します。このメソッドは、データベースが存在する場合はデータベースを開き、データベースが存在しない場合はデータベースを作成して開きます。データベース呼び出しを行う前に作成されたデータベースファイルを削除して、毎回新しいファイルを作成できることに基づいたドキュメントを参照してください。

このSOの質問は、ファイルの場所を示します。デバイス上のsqliteデータベースの場所

他のルートは、アプリケーションがsqliteクエリを実行して起動したときに、テーブル内のデータを削除することです。

DELETE FROM your_table

私の唯一の考えは、アプリケーションが起動するたびにデータベースを削除する場合、本当にデータベースが必要かどうかということです。データを更新しない場合は、jsonファイルをデータとともに「キャッシュ」しないのはなぜですか。GSONライブラリは、jsonを取得し、コードをほとんど使用せずにJavaオブジェクトに変換するのに最適です。これにより、sqliteを使用するよりもコードが少なくなります。しかし、推奨事項は、達成しようとしていることの全体像を把握していないことから来ています。次に、dbファイルの代わりに、アプリの起動時にjsonファイルを削除します。

于 2012-08-13T23:24:03.803 に答える