2011-01-10 6 views
1

私はアンドロイドのsdkとデータベースにはかなり新しいですが、これはかなりの時間の答えを探しています。アンドロイドプラットフォームのsqliteデータベースの拡張アクセス

データベース内に複数のテーブルを持つアプリケーションを作成しようとしています。例えば

しかし、自分のテーブルの作成、DatabaseHelperの内部クラスの作成、データの読み込みを処理する私のDatabaseManagerクラスは、高度なメンテナンスを必要とする非常に大きなクラス用に作成しています。テーブルの列を追加したり削除したりするたびに、コードのかなりの部分を変更する必要があります。 - そのテーブルの行にデータが追加されるたびに参照 - 上記のメソッドを呼び出す方法 - メソッド は確かに多分データベースのISNを使用して、この符号化システムのいくつかのより良い方法がなければならない: - テーブル を作成するヘルパークラス内のコード - 任意の特定の更新方法

私の質問はこれであるデータベース行 のすべてを返します最高の方法、または私はちょうど大学でJavaを学んだような大きなクラスに慣れていないと私の最大のクラスは、コードの単なる400から600行で構成されています。

ありがとうございました!

+1

質問とはちょっと別のメモがありますが、私は、400〜600行のコードを持つクラスは、取得する必要があるほど大きいと言います。クラスが大きくなったら、リファクタリングを考えてみてください。 – dhaag23

答えて

0

たとえば、ソースコードの生成を使用できます。 jOOQによって提供されるもの。 examples pageを参照してください。開発データベースからソースコードを生成すると、基になるデータベースにアクセスするJavaコードが常に最新であることを確認できます。構造的にデータベース内の何かが変更された場合、関連するすべての場所でコンパイルエラーが発生します。そうすれば、何も忘れないようにすることができます。

一方、テーブルにフィールドを追加し、そのテーブルに挿入/更新する場合、そのフィールドはすべての挿入/更新ステートメントで自動的に考慮されます。

上記の利点に加えて、選択したIDE(例:Eclipse)を使用して、SQL文の自動補完を提供することができます。

SQLiteのサポートは、まだjOOQでは少し実験的です。どんなフィードバックも歓迎です!

+0

プロジェクトはSQLite用にどのくらい開発されていますか?これは面白そうに見え、これを見ては間違いありません!ありがとうございました。 – mscriven

+0

私のすべての統合テストは円滑に実行され、SQLiteでも実行されます。これは、開発スキーマからソースコードを生成し、ネストされた選択、結合など、すべてのCRUD操作を実行できることを意味します。「実験的」とは、SQLiteの緩い型システムに関する多くの経験がないということです。 jOOQは他のRDBMSと同様に、SQLite上でリジッドタイプのシステムを実行します。つまり、数値列に文字列がある場合、またはその逆の場合は、jOOQに問題が発生する可能性があります。私はそれを将来的にはサポートするつもりですが、 –

関連する問題