2

アプリにはいくつかのテーブルがあり、データベースが作成されたとき、つまりアプリが最初にインストールされたときに、それぞれがRAWSQLファイルを介して入力されます。すなわちを使用して

executeSqlScript( dao, sqlFile )

テーブルごとに1つのSQLファイルがあります。これは現時点では簡単ですが、テーブルの数が増えると、SQLファイルの数も増えます。データベースにデータを入力するためのより良い方法はありますか?静的データをXMLファイルに保存し、これをドメインオブジェクトに逆シリアル化し、OrmLiteを介してこれらを永続化することは、より良いオプションですか、それとも私が見逃している他のトリックがありますか?

4

2 に答える 2

0

確かにあります。ファイルごとに1つのテーブルがある場合は、これらのファイルを1つのSQLファイル、またはデータベースブラウザを使用して直接dbファイルにマージすることをお勧めします。

于 2012-11-08T00:04:43.563 に答える
0

また、1つのAndroidアプリでSqLiteデータベースにアクセスする方法についても決定していました。最後に、私はOrmLiteに行き着きました。基本的に、SQLステートメントをJavaコードにハードコーディングするのは好きではないからです。私はHibernateに似ているが、Androidには十分な「ライト」なものを探していました。

OrmLiteは、ドメインオブジェクトに従ってテーブルを作成するだけでなく、SQL作成スクリプトを作成する必要もありません。ただし、Javaオブジェクトを作成してDBに保存するだけで、SqLiteデータベースにデータを取り込むのも非常に簡単です。

OrmLiteSqliteOpenHelper.onUpgrade()SQLスクリプトを作成する必要があったのは、このメソッドを使用してデータベースをアップグレードするときだけでした。この場合、ALTER TABLEステートメントを記述する必要があります。それ以外の場合は、純粋なJavaを使用してSqLiteDBを操作できます。また、テーブルごとに1つのJavaファイルを作成するかどうかはあなた次第です。または、単一のJavaファイルに複数のテーブルを設定します。これの良いところは、Javaコンパイラによって検証されるJavaコードを作成することです。SQLステートメントを文字列にハードコーディングする場合、これは当てはまりません。

初期化データがたくさんあり、XMLファイルのデータを簡単に取得できる場合。次に、XMLをドメインオブジェクトに逆シリアル化し、OrmLiteを使用してそれらをDBに保存することも解決策になる可能性があります。

于 2012-11-08T00:14:30.053 に答える