我正在对我的应用进行一些重构,并尝试使用最佳实践来处理数据库。 有人可以建议最好的方法来检查数据库是否存在并执行更新。 我目前使用的方法是: 1.打开可读数据库。 2.检查表是否在那里,如果没有触发Sql异常 3a在异常处理中,我正在关闭数据库 3B。打开可写数据库: 3c在sql异常中执行create table并从我的Json feed执行初始更新。
这是管理数据库和更新的最佳方式吗?或者我应该采用不同的方式来提高效率?
答案 0 :(得分:0)
我建议在那里添加事务支持,如果在更新数据库期间出现任何问题,您可以选择回滚。
据我所知,如果你在sqlite上进行多重查询,建议在交易中将这些问题拿出来,原因是上述原因,其次是速度。
答案 1 :(得分:0)
我使用以下方法:
private boolean checkDataBase(){
SQLiteDatabase checkDB = null;
try{
String myPath = DB_PATH + DB_NAME;
checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
long result = DatabaseUtils.longForQuery(checkDB,"SELECT count() FROM sqlite_master WHERE type='table' AND name='table_name'",null);
if(result == 0)
checkDB = null;
}catch(SQLiteException e){
Log.e("", e.getLocalizedMessage()+e.getMessage()+e.getCause()+
Arrays.toString(e.getStackTrace()));
}
if(checkDB != null){
checkDB.close();
}
return checkDB != null ? true : false;
}