2010-12-21 14 views
0

私は開発のためにアンドロイドとSqliteを使用しています。これは将来的には(dev用に)カスタマイズ可能です。私は、アプリケーション用のデータベースを作成するために使用されるデータを含むデータベースを作成しました。だから将来的に変更が必要な場合や、将来他の誰かのためにアプリケーションを作成する場合、私はこのオリジナルのデータベースを変更するだけです。この背後にあるアイデアは、開発者のデータベースは、すべてのUIとすべてのアプリケーションとは何かを設定することです。データベースを作成するデータベース

私は次の作業に執着しています。デベロッパーとしてアプリケーションに必要なデータベースが完全に設定されています。私の考えは、別のDBHelperクラスを作成し、その参照内に元のDBHelperクラスと新しいDBクラス内のクエリを作成することでした。

public class appDbHelper extends SQLiteOpenHelper { 
    private static final String DATABASE_NAME = "library.db"; //database name 
    Cursor all, tables, options, ui_type; 
    SQLiteDatabase database; 

    public appDbHelper(Context context) { 
     super(context, DATABASE_NAME, null, 1); 
     DBHandler databaseHelper = new DBHandler(context); 
     database = databaseHelper.getReadableDatabase(); 
     all = database.rawQuery("SELECT * FROM config", null); 
     tables = database.rawQuery("SELECT * FROM table_names", null); 
     options = database.rawQuery("SELECT * FROM options", null); 
     ui_type = database.rawQuery("SELECT * FROM ui_type", null); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     for(int i=0; i<tables.getCount(); i++){ 
      tables.moveToPosition(i+1); 
      String sql = ""; 
      for(int j = 0; i < all.getCount(); j++){ 
       if (all.moveToFirst()) { 
        do{ 
         sql = ", " + all.getString(2) + " " + all.getString(5).toUpperCase(); 
        } 
        while (all.moveToNext()); 
       } 
      } 
      Log.v("DatabaseSQL", sql); 
      database.execSQL("CREATE TABLE " + tables.getString(1) + "(_id INTEGER PRIMARY KEY AUTOINCREMENT"+sql+");"); 
     } 
    } 

しかし、私は、これは私が何をする必要があるかについて、進むべき道ではない感じを持っている:これは私が以前のデータベースからデータベースを作成しようとしている二DBHelperクラスです。どんな助けでも大歓迎です。

+0

私はすべてのことを正しく理解しているかどうかはわかりません。あなたはUIと物事を設定するために読んだデータベースを持っていますか?はいの場合、なぜですか?誰かがアプリケーションをカスタマイズするためにデータベースを使用していると聞いたことはありません...第2の質問:問題は何ですか? 2つのデータベースを同時に開く方法を知りたいですか?私はあなたの質問で少し失われています... – WarrenFaith

+0

はいソート、元のデータベースは、アプリケーションのためのデータを格納するアプリケーションのデータベースをセットアップするために使用されますこれは、 UIビューのタイプ。問題は、私はこれを完全に間違った方法で行っているのですか?それは、多くの異なるアプリケーションで何度も使用されるかもしれないアプリケーションですが、アプリケーションのためにこれが変更された場所が1つだけ必要です。私の例では、最初の設定データベースです。 – SamRowley

答えて

1

私はあなたが間違って複雑に思う。いくつかの挿入を簡単に作成できる場所からデータを読み込むためのデータベースを提供し、設定が実装されます。

2種類の溶液:

  1. 私自身のプロジェクトから:そこDatabaseAdapter.onCreate()

    データベースのセットアップとデータとデータベースの充填が表示されます。データ自体は、定数に基づくデータを含む単純な挿入で追加されます。したがって、プログラマは定数を変更することで簡単にデータを変更できます。

    2つのデータベースを処理する必要がないため、別のデータベースを用意して読み取る必要はありません。

  2. アンドロイドはデータベースの場所をサポートしていますので、このすべてをスキップしてres/rawまたはassetフォルダまたはsdcardの任意の場所に指定したsqliteデータベースファイルを開くこともできます。

上記の2つの方法のいずれかを実行することをお勧めします。

関連する問題