Phonegap应用程序SQLite数据库初始设置

Phonegap app SQLite db initial set up

本文关键字:设置 数据库 应用程序 SQLite Phonegap      更新时间:2023-09-26

在第一次执行时构建应用程序数据库模式的最佳实践是什么?

换句话说,我试图找到的是:

SQLite不支持以逗号分隔的查询作为一个语句批处理执行。如何替换它,使代码经得起未来考验?(我不认为自己把tx.executeSQL(")中的所有create语句按顺序链接起来——这会把我的代码变成一段可怕的cr*p)。

在本机代码和Sencha/Phonegap中,我所做的是使用我引用的DatabaseHelper类。在该类中,您可以看到数据库的版本:

public DataBaseHelper(Context context) {
    super(context, DB_NAME, null, 2);
    this.myContext = context;
}
public void createDataBase() throws IOException {
    boolean dbExist = checkDataBase();
    if (dbExist) {
        // do nothing - database already exist
         openDataBase();
            int cVersion = myDataBase.getVersion();
            if(cVersion != 2){
                onUpgrade(myDataBase, myDataBase.getVersion(), 2);}
            close();
    } ....}
    @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        this.getReadableDatabase();
        try{
        db.execSQL("ADD SQL QUERY HERE TO ADD TABLE");
}
        catch(Exception e){}
    }

private boolean checkDataBase() {
        SQLiteDatabase checkDB = null;
        try {
            String myPath = DB_PATH + DB_NAME;
            checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
            } catch (SQLiteException e) {
            // database does't exist yet.
            }
        if (checkDB != null) {
            checkDB.close();
        }
        return checkDB != null ? true : false;
    }

尽管这很乏味,但它可以让数据库经得起未来的考验,并且在运行时调用查询。这涵盖了您的两种需求。

我希望这能有所帮助:)