package me.bell.killprocess.db.util;
import android.content.Context;
import org.greenrobot.greendao.query.QueryBuilder;
import java.util.List;
import me.bell.killprocess.db.DBManager;
import me.bell.killprocess.db.entity.AppData;
import me.bell.killprocess.db.gen.AppDataDao;
/**
* @Info 操作表AppData的方法
* @Auth Bello
* @Time 17-11-2 下午6:03
* @Ver
*/
public class AppDataDaoUtil {
private static final String TAG = AppDataDaoUtil.class.getSimpleName();
private DBManager dbManager;
public AppDataDaoUtil(Context mContext){
dbManager = DBManager.getInstance();
dbManager.init(mContext);
}
/**
* 关闭操作连接
*/
public void closeDao(){
if (null != dbManager){
dbManager.closeConnection();
}
}
/**
* 插入记录,如果表未创建,先创建Mission表
* @param appData
* @return
*/
public boolean insertApp(AppData appData){
boolean flag = false;
flag = dbManager.getDaoSession().getAppDataDao().insert(appData) == -1 ? false : true;
return flag;
}
/**
* 插入多条数据,在子线程操作
* @param appDataList
* @return
*/
public boolean insertMultiApp(final List<AppData> appDataList){
boolean flag = false;
try {
dbManager.getDaoSession().runInTx(new Runnable() {
@Override
public void run() {
for (AppData app : appDataList){
dbManager.getDaoSession().insertOrReplace(app);
}
}
});
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 更新一条数据
* @param appData
* @return
*/
public boolean updateApp(AppData appData){
boolean flag = false;
try {
dbManager.getDaoSession().update(appData);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 删除一条记录
* @param appData
* @return
*/
public boolean deleteApp(AppData appData){
boolean flag = false;
try {
dbManager.getDaoSession().delete(appData);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 删除表的所有记录
* @return
*/
public boolean deleteAll(){
boolean flag = false;
try {
dbManager.getDaoSession().deleteAll(AppData.class);
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
/**
* 根据主键ID查询一条记录
* @param id
* @return
*/
public AppData queryAppById(long id){
return dbManager.getDaoSession().load(AppData.class, id);
}
/**
* 查询所有记录
* @return
*/
public List<AppData> queryAllApp(){
return dbManager.getDaoSession().loadAll(AppData.class);
}
/**
* 使用native sql查询操作
* @param sql
* @param conditions
* @return
*/
public List<AppData> queryAppByNativeSQL(String sql, String[] conditions){
return dbManager.getDaoSession().queryRaw(AppData.class, sql, conditions);
}
/**
* 根据M_Code查询记录
*
* @param isChecked
* @return
*/
public List<AppData> queryAppByChecked(int isChecked){
QueryBuilder<AppData> builder = dbManager.getDaoSession().queryBuilder(AppData.class);
return builder.where(AppDataDao.Properties.IsChecked.eq(isChecked)).list();
}
}