Phonegap应用程序SQLite数据库初始设置
Phonegap app SQLite db initial set up
在第一次执行时构建应用程序数据库模式的最佳实践是什么?
换句话说,我试图找到的是:
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;
}
尽管这很乏味,但它可以让数据库经得起未来的考验,并且在运行时调用查询。这涵盖了您的两种需求。
我希望这能有所帮助:)
相关文章:
- Bookshelf.js设置的属性不在数据库中
- 当张贴到数据库时,I'我得到了一个“;可以't在它们被发送错误之后设置报头”;
- AngularJS设置从数据库中选择选项
- 为数据库存储设置角度日期格式
- 使用 node.js 设置 Microsoft Access 数据库连接
- 从数据库中获取配置设置,以便在 Angular 中跨应用程序共享
- MongoDB MonkAPI根据数据库请求之外可用的查找结果设置变量
- Phonegap应用程序SQLite数据库初始设置
- 使用php将数据库中的值设置为JavaScript
- 当当前时间距数据库中设置的时间不到一小时时,如何禁用按钮
- 如何设置从数据库到php会话的id点击链接
- 3 选项从数据库中删除更改时选择设置值
- 如何将javascript变量设置为php变量并将其存储在数据库中
- 流星:如何根据数据库中的值设置单选按钮的值
- 根据按 id 搜索将数据库的值设置为文本框
- 仅在数据库中设置一次内容
- 已经设置了mongodb,猫鼬等,但是当我尝试向数据库添加一些东西时,它实际上并没有添加它
- 如何使用AngularJS设置数据库中复选框中选中的默认值
- 设置数据库中日期字段的值
- Angularjs,无法设置数据库返回json对象的下拉列表