GreenDao 分页条件查询排序

本文介绍了一种基于GreenDAO的分页加载方法,通过offset和limit参数实现数据的分批获取,并支持升序和降序排序。同时,还提供了多种查询条件如等于、不等于等,以及如何构建复杂的查询条件并进行分页查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分页加载20条数据,getTwentyRec(int offset)中控制页数offset++即可

     DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(context, "arnold.db");
     DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDb());
     AbstractDaoSession  daoSession = daoMaster.newSession();

     List<UserEntity> listMsg = daoSession.queryBuilder(UserEntity.class).offset(offset * 20).limit(20).list();

 

 (1)orderAsc:升序排序 
(2)orderDesc: 降序排序 
(3)eq():== 
(4)noteq():!= 
(5)gt(): > 
(6)t():< 
(7)ge:>= 
(8)le:<= 
(9)like():包含 
(10)between:俩者之间 
(11)in:在某个值内 
(12)notIn:不在某个值内
userDao.queryBuilder()
  .where(Properties.FirstName.eq("Joe"))
  .orderAsc(Properties.LastName)
  .list();

orderDesc 排序后截取分页加载数据 


   /**
     * 分页条件查询实体集合
     *
     * @param entityClass
     * @param offset
     * @param limit
     * @param where
     * @param selectionArgs
     * @param <T>
     *
     * @return
     */
    public <T> List<T> queryPage(Class<T> entityClass, int offset, int limit, String where,
            Property properties, Object... selectionArgs) {
        AbstractDao<T, ?> dao = (AbstractDao<T, ?>) daoSession.getDao(entityClass);
        QueryBuilder<T> builder = dao.queryBuilder()
                .orderDesc(properties)
                .where(
                        new WhereCondition.StringCondition(where, selectionArgs))
                .offset(offset * limit)
                .limit(limit);
        return builder.list();
    }

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值