greendao 根据条件删除数据

1.实现思路:

先根据条件查询到符合条件的数据列表,然后调用deleteInTx;

GreenDaoUtil instance = GreenDaoUtil.getInstance(new GreenDaoContext(mView.getContext(), DbConstant.HAVE_DOWNLOADED_DB));

AnalyzeRecordBeanDao analyzeRecordBeanDao = instance.getDaoSession().getAnalyzeRecordBeanDao();
List<AnalyzeRecordBean>analyzeRecordBeanList=analyzeRecordBeanDao.queryBuilder().where(AnalyzeRecordBeanDao.Properties.UserId.eq(userId),AnalyzeRecordBeanDao.Properties.IsSelect.eq(true)).list(); analyzeRecordBeanDao.deleteInTx(analyzeRecordBeanList);

这样就实现了按照条件删除功能。

2.根据条件查询

greenDaoUtil = GreenDaoUtil.getInstance(new GreenDaoContext(mView.getContext(), DbConstant.NEW_PROJECT_DB));
FilmEnforcementDao filmEnforcementDao = greenDaoUtil.getDaoSession().getFilmEnforcementDao();
QueryBuilder<FilmEnforcement> queryBuilderFilmEnforcement = filmEnforcementDao.queryBuilder()/*.offset(page * ConfigConstant.PAGE)
        .limit(ConfigConstant.PAGE)*/
        .orderDesc(FilmEnforcementDao.Properties.Sbsj)
        .where(FilmEnforcementDao.Properties.UserId.eq(userId))
        .where(FilmEnforcementDao.Properties.Wcd.eq(mView.taskStatus()));
if (!TextUtils.isEmpty(mView.getKeyWord())) {
    queryBuilderFilmEnforcement = queryBuilderFilmEnforcement.whereOr(FilmEnforcementDao.Properties.GeoId.like("%" + mView.getKeyWord() + "%"),
            FilmEnforcementDao.Properties.Xmmc.like("%" + mView.getKeyWord() + "%"));
}
List<FilmEnforcement> filmEnforcements = queryBuilderFilmEnforcement
        .list();

greendao多条件查询一

            try {
                greenDaoUtil = GreenDaoUtil.getInstance(new GreenDaoContext(mView.getContext(), DbConstant.CONFIG_DB));
                List<MessageBean> notReadMessageBeanList = greenDaoUtil.getDaoSession().getMessageBeanDao().queryBuilder()
                        .where(MessageBeanDao.Properties.HaveRead.eq(true))
//                        .where(MessageBeanDao.Properties.IsReturn.eq(true))
                        .where(MessageBeanDao.Properties.TaskRemark.isNotNull())
                        .orderDesc(MessageBeanDao.Properties.PushTime).list();
             
            } catch (Exception e) {
                Log.d(TAG, "getNotReadList: 查询未读消息失败");
            }

greendao多条件查询二

查询过程中,有时候查询条件是多个的,且动态组合的takeDataSourceList和taskDataTypeList就是条件组合后的结果

try {
    greenDaoUtil = GreenDaoUtil.getInstance(new GreenDaoContext(mView.getContext(), DbConstant.CONFIG_DB));
    WhereCondition foundTypeWhereCondition = MessageBeanDao.Properties.TaskDataSource.in(takeDataSourceList);
    WhereCondition businessTypeWhereCondition = MessageBeanDao.Properties.TaskDataType.in(taskDataTypeList);
    WhereCondition higherReturnWhereCondition;
    if (higherReturn) {
        higherReturnWhereCondition = MessageBeanDao.Properties.TaskRemark.isNotNull();
    } else {
        higherReturnWhereCondition = MessageBeanDao.Properties.TaskRemark.isNull();
    }

    List<MessageBean> readMessageBeanList = greenDaoUtil.getDaoSession().getMessageBeanDao().queryBuilder()
            .where(foundTypeWhereCondition)
            .where(businessTypeWhereCondition)
            .where(MessageBeanDao.Properties.HaveRead.eq(haveRead))
            .where(higherReturnWhereCondition)
            .orderDesc(MessageBeanDao.Properties.PushTime).list();
    if (haveRead) {
        mView.setReadList(readMessageBeanList);
    } else {
        mView.setNotReadList(readMessageBeanList);
    }

} catch (Exception e) {
    Log.d(TAG, "getNotReadList: 查询未读消息失败");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值