Android 数据库来创建数据库

Android 数据库来创建数据库,android,database,sqlite,Android,Database,Sqlite,我正在使用Sqlite和android来开发和开发未来可定制的应用程序(用于开发人员)。我已经用这些数据创建了一个数据库,然后用于为应用程序创建数据库。因此,如果将来需要进行任何更改,或者我将来为其他人编写应用程序,那么我所要做的就是更改这个原始数据库。这背后的想法是开发人员的数据库将设置所有用户界面以及与应用程序相关的一切 当开发人员完全填充时,我在应用程序中有了我需要的数据库,我被接下来要做的事情卡住了。我的想法是创建另一个DBHelper类,并在该引用中创建新DB类中的原始DBHelper

我正在使用Sqlite和android来开发和开发未来可定制的应用程序(用于开发人员)。我已经用这些数据创建了一个数据库,然后用于为应用程序创建数据库。因此,如果将来需要进行任何更改,或者我将来为其他人编写应用程序,那么我所要做的就是更改这个原始数据库。这背后的想法是开发人员的数据库将设置所有用户界面以及与应用程序相关的一切

当开发人员完全填充时,我在应用程序中有了我需要的数据库,我被接下来要做的事情卡住了。我的想法是创建另一个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+");");
        }
    }
公共类appDbHelper扩展了SQLiteOpenHelper{
私有静态最终字符串数据库\u NAME=“library.db”;//数据库名称
光标全部、表格、选项、ui_类型;
SQLITE数据库;
公共appDbHelper(上下文){
super(上下文,数据库名称,null,1);
DBHandler databaseHelper=新的DBHandler(上下文);
database=databaseHelper.getReadableDatabase();
all=database.rawQuery(“SELECT*FROM config”,null);
tables=database.rawQuery(“从表名称中选择*”,null);
options=database.rawQuery(“SELECT*FROM options”,null);
ui\u type=database.rawQuery(“从ui\u type中选择*项”,null);
}
@凌驾
public void onCreate(SQLiteDatabase db){

对于(int i=0;i我认为您做得不对,而且很复杂。您提供了一个数据库来读取数据,您可以轻松地创建一些插入,您的配置将得到实现

两种解决方案:

  • 从我自己的项目:

    在这里,您应该可以看到数据库设置和数据库中数据的填充。数据本身添加了简单的插入,其中包含基于常量的数据。因此程序员可以通过更改常量轻松更改数据

    这样,您就不必处理两个数据库,也不需要提供另一个数据库并读取它们

  • 由于android支持数据库位置,您也可以跳过这一切,只需打开您在res/raw或asset文件夹或SD卡上任何位置提供的sqlite数据库文件


  • 我建议使用上述两种方法中的一种。

    我不确定我是否理解所有内容。你有一个数据库可以用来设置UI和其他东西?如果有,为什么?从未听说有人使用数据库来定制应用程序……第二个问题:有什么问题?你想知道如何同时打开两个数据库吗?我是你的问题有点迷糊了…是的,原始数据库用于为应用程序设置数据库,该应用程序将存储应用程序的数据,这反过来又取决于要存储的数据,将显示不同类型的UI视图。问题是,我这样做完全是错误的吗?这是一个可能被多次使用的应用程序不同的应用程序,但我只希望在一个地方对应用程序进行更改,在我的示例中,这是第一个配置数据库。