onUpgrade 方法不需要手动调用,改了对应的版本号,当onCreate之后,就会自动调用了。
实际代码中日志未打印出来,为了保险用
tableHasColumn判断是否有新增字段,重复执行升级语句不会崩溃,但是会抛出错误日志。
/**
* 判断表格是否存在 某一列
*
* @param tabName
* @return
*/
public boolean tableHasColumn(String tabName, String columnName) {
boolean result = false;
Cursor cursor = null;
try {
cursor = db.rawQuery("select * from sqlite_master where name = ? and sql like ?"
, new String[]{tabName, "%" + columnName + "%"});
result = null != cursor && cursor.moveToFirst();
} catch (Exception e) {
Log.e(TAG, "checkColumnExists2..." + e.getMessage());
} finally {
if (null != cursor && !cursor.isClosed()) {
cursor.close();
}
}
return result;
}