package com.bosi.chineseclass.han.db; import com.bosi.chineseclass.BSApplication; import com.bosi.chineseclass.han.util.LogUtils; import com.lidroid.xutils.db.sqlite.WhereBuilder; import com.lidroid.xutils.exception.DbException; public abstract class AbsDbOperation implements IDbOperation { DbManager mDbManager = BSApplication.getInstance().mDbManager; @Override public boolean saveData(EntityBase mEntity) { try { mDbManager.getContentDb().save(mEntity); return true; } catch (DbException e) { return false; } } public abstract String getDbName(); @Override public boolean deleteDataFromDb(String sql) { try { mDbManager.getContentDb().execNonQuery(sql); return true; } catch (DbException e) { return false; } } @Override public boolean updateDataFromDb(String sql) { try { mDbManager.getContentDb().execNonQuery(sql); LogUtils.i("SQL", sql); return true; } catch (DbException e) { LogUtils.i("EXCEPTIONSQL", sql); return false; } } public DbManager getDBDbManager() { return mDbManager; } public void clearDbData() { try { mDbManager.getContentDb() .execNonQuery("delete from " + getDbName()); } catch (DbException e) { e.printStackTrace(); } } public void insertOrUpdate(EntityBase mUser, WhereBuilder mWhereBuilder) { boolean isInsertSuccess = saveData(mUser); if (!isInsertSuccess) { try { getDBDbManager().getContentDb().update(mUser, mWhereBuilder); } catch (DbException e) { } } } }