2012-02-25 125 views
0

我正在对我的应用程序进行一些重构,并试图使用处理数据库的最佳做法。 有人可以建议处理检查数据库是否存在并执行更新的最佳方法。 我目前使用的方法是: 1.打开可读的数据库。 2.如果没有触发Sql异常,检查表中是否有表格 3a在异常处理中,我正在关闭数据库 3b。打开一个可写数据库: 3c在sql异常中执行一个create table,并从我的Json feed执行一个初始更新。构建我的android Sqlite流程的最佳方式是什么?

这是管理数据库和更新的最佳方式,还是应该以不同的方式提高效率?

回答

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; 
} 
0

我会建议在那里添加事务支持,所以如果在更新数据库的过程中出现任何问题,您可以选择回滚。

据我所知,如果你在做sqlite的多重查询,建议在事务中执行这些事务是因为上述原因,其次是速度。

相关问题