package com.bosi.chineseclass.db;
import com.bosi.chineseclass.BSApplication;
import com.lidroid.xutils.db.sqlite.WhereBuilder;
import com.lidroid.xutils.exception.DbException;
public abstract class AbsDbOperation implements IDbOperation{
BosiDbManager mDbManager = BSApplication.getInstance().mDbBosiClass;
@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);
return true;
} catch (DbException e) {
return false;
}
}
public BosiDbManager 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) {
}
}
}
}