Newer
Older
KillProcess / app / src / main / java / me / bell / killprocess / db / util / AppDataDaoUtil.java
bello on 27 Mar 2018 3 KB init
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();
    }



}