2010-12-21 3 views
0

나는 개발을 위해 안드로이드와 함께 Sqlite를 사용하고 있습니다. 개발자를 위해 커스터마이징이 가능합니다. 필자는 응용 프로그램 용 데이터베이스를 만드는 데 사용할 데이터가있는 데이터베이스를 만들었습니다. 미래에 변경해야하거나 다른 누군가를 위해 앱을 작성해야한다면이 원래 데이터베이스를 변경해야합니다. 배후의 아이디어는 개발자의 데이터베이스가 모든 UI와 앱과 관련된 모든 것을 설정한다는 것입니다.데이터베이스를 생성하기위한 데이터베이스

나는 다음에해야 할 일에 전념하고 있습니다. 개발자가 완전히 채워진 앱에 필요한 데이터베이스가 있습니다. 내 생각은 또 다른 DBHelper 클래스를 만들고 그 참조 내에서 새로운 DB 클래스 내에서 원래의 DBHelper 클래스와 쿼리를 작성하는 것이 었습니다. 그래서 내가 이전 데이터베이스에서 데이터베이스를 만들려고 해요 번째 DBHelper 클래스입니다 :

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+");"); 
     } 
    } 

는하지만 이것이 내가해야 할 일에 대해 갈 수있는 방법이 아니다 느낌이있다. 어떤 도움이라도 대단히 감사하겠습니다.

+0

나는 모든 것이 옳은지 잘 모르겠다. UI와 물건을 설정하기 위해 읽은 데이터베이스가 있습니까? 그렇다면 왜? 누군가 데이터베이스를 사용하여 응용 프로그램을 사용자 정의했다고 들었습니다 ... 두 번째 질문 : 문제점은 무엇입니까? 동시에 2 개의 데이터베이스를 열 수있는 방법을 알고 싶습니까? 나는 약간의 질문에 분실입니다 ... – WarrenFaith

+0

예, 정렬, 원래 데이터베이스는 응용 프로그램에 대한 데이터를 저장하는 응용 프로그램에 대한 데이터베이스를 설정하는 데 사용됩니다,이 차례로 저장할 데이터에 따라 다른 표시됩니다 UI보기의 유형. 문제는 완전히 잘못된 방향으로가는 것입니까? 그것은 여러 응용 프로그램에 여러 번 사용할 수 있지만 난 단지 응용 프로그램에 대한 변경이 한 곳을 원한다면, 내 예제에서는 첫 번째 설정 데이터베이스입니다. – SamRowley

답변

1

내가 잘못 생각하고 복잡하다고 생각합니다. 당신은 당신이 쉽게 삽입을 생성 할 수있는 곳에서 데이터를 읽을 수있는 데이터베이스를 제공하고 구성이 구현 될 것입니다.

두 솔루션 : 내 자신의 프로젝트에서

  1. : 거기 DatabaseAdapter.onCreate()

    당신은 데이터베이스 설정 및 데이터베이스의 충만을 볼 수 있습니다. 데이터 자체는 상수를 기반으로하는 데이터가 포함 된 간단한 삽입으로 추가됩니다. 따라서 프로그래머는 상수를 변경하여 데이터를 쉽게 변경할 수 있습니다.

    2 개의 데이터베이스를 처리 할 필요가 없기 때문에 다른 데이터베이스를 제공하거나 읽을 필요가 없습니다.

  2. 안드로이드는 데이터베이스 위치를 지원하므로이 모든 것을 건너 뛰고 res/raw 또는 asset 폴더 또는 sdcard의 아무 곳에서나 제공하는 sqlite 데이터베이스 파일을 열 수 있습니다.

위의 두 가지 방법 중 하나를 수행하는 것이 좋습니다.

관련 문제