ormlite的一点常用的操作

前言

记录一下ormlite的一点常用方法,免得用到时,到处去找资源,后续用到更多,逐渐添加上来,主要参考
OrmLite框架 —— OrmLite 复杂条件查询(二)
的文章,在此表示感谢。

常用方法

  • 方法 :eq(columnName,value) 等于(=)equals
    使用示范:mDao.queryBuilder().where().eq(“id”, 2).query();
    对应SQL:SELECT * FROM t_person WHERE id = 2

  • 方法 :lt(columnName,value) 小于(<) less than
    使用示范:mDao.queryBuilder().where().lt(“id”, 2).query();
    对应SQL:SELECT * FROM t_person WHERE id < 2

  • 方法 :gt(columnName,value) 大于(>) greater than
    使用示范:mDao.queryBuilder().where().gt(“id”, 2).query();
    对应SQL:SELECT * FROM t_person WHERE id > 2

  • 方法 :ge(columnName,value) 大于等于(>=)greater-than or equals-to
    使用示范:mDao.queryBuilder().where().ge(“id”, 2).query();
    对应SQL:SELECT * FROM t_person WHERE id >= 2

  • 方法 :le(columnName,value) 小于等于(<=)less than or equals-to
    使用示范:mDao.queryBuilder().where().le(“id”, 2).query();
    对应SQL:SELECT * FROM t_person WHERE id <= 2

  • 方法 :ne(columnName,value) 不等于(<>)not-equal-to
    使用示范:mDao.queryBuilder().where().ne(“id”, 2).query();
    对应SQL:SELECT * FROM t_person WHERE id <> 2

  • 方法 :in(columnName,object…) 在指定列中匹配object数组所对应的值,返回匹配到的结果行集合,in还有几个重载方法,需要的话可以去看文档或源码
    使用示范:mDao.queryBuilder().where().in(“id”, 1,2).query();
    对应SQL:SELECT * FROM t_person WHERE id IN (1,2 )

  • 方法 :notIn(columnName,object…) 在指定列中匹配object数组所对应的值,返回没有匹配到的结果行集合notIn还有几个重载方法,需要的话可以去看文档或源码
    使用示范:mDao.queryBuilder().where().notIn(“id”,1,2).query();
    对应SQL:SELECT * FROM t_person WHERE id NOT IN (1 ,2 )

  • 方法 :like(columnName,pattern) 使用%通配符来匹配,指定行数据,返回匹配到的结果
    使用示范:mDao.queryBuilder().where().like(“LastName”, “A%”).query(); 匹配A开头的LastName
    mDao.queryBuilder().where().like(“LastName”, “%s”).query(); 匹配s结尾的LastName
    mDao.queryBuilder().where().like(“LastName”, “%art%”).query(); 匹配中间为art的LastName
    对应SQL:SELECT * FROM t_person WHERE LastName LIKE ‘A%’

  • 方法 :between(columnName,low,high) 获取指定范围内的结果
    使用示范:mDao.queryBuilder().where().between(“id”, 1, 2).query(); 获取id是1到2之间的结果
    对应SQL:SELECT * FROM t_person WHERE id BETWEEN 1 AND 2

  • 方法and(),or()用来组合上述where子语句。进行与,或操作。

  • 方法 :and() where子句与操作
    使用示范:mDao.queryBuilder().where().lt(“id”, 3).and().gt(“id”, 1).query();
    对应SQL:SELECT * FROM t_person WHERE (id < 3 AND id > 1 )

  • 方法 :or() where子句或操作
    使用示范:mDao.queryBuilder().where().eq(“id”, 1).or().eq(“id”, 2).query();
    对应SQL:SELECT * FROM t_person WHERE (id = 1 OR id = 2 )

  • ORDER BY
    根据指定列名排序,降序,升序
    使用示范:mDao.queryBuilder().orderBy(“id”, false).query(); //参数false表示降序,true表示升序。
    对应SQL:SELECT * FROM t_person ORDER BY id DESC(降序)

  • DISTINCT
    过滤指定列不重复数据行,重复的只返回一次。
    使用示范:mDao.queryBuilder().selectColumns(“City”).distinct().query();
    对应SQL:SELECT DISTINCT City FROM t_person

  • GROUP BY
    按照指定列分组
    使用示范:mDao.queryBuilder().groupBy(“city”).query();
    对应SQL:SELECT * FROM t_person GROUP BY city

多条件查询

  • 封装 + 使用 1
    多条件查询,可将查询的键值对置于map中使用
  public <T> List<DbClock> queryByColumnName(Map<String, Object> map) {
        List list = null;
        try {
            list = this.mDao.getDao().queryForFieldValuesArgs(map);
        } catch (SQLException var4) {
            LogUtil.e("OrmLiteDao", var4);
        }

        return list;
    }
  Map<String, Object> map = new HashMap<>();
        map.put("hour", hour);
        map.put("minute", minute);
        map.put("days",days);
        map.put("isShow",clock.getShow());
        List<DbClock> list = mRepository.queryByColumnName(map);
  • 删除id 不相等但是其他属性列相等的所有数据项
 DeleteBuilder mbulider =mRepository.getmDao().getDao().deleteBuilder();
                mbulider.where().ne("id",clock.getId()).and().eq("hour", hour).and().eq("minute", minute).and().eq("days",days).and().eq("isShow",clock.getShow());
                mbulider.delete();

上述代码中“ne”表示not equals。并且上述操作,其实效果上等价于:

 List<DbClock> list = mRepository.queryByColumnName(map);
 mRepository.deleteForBatch(list);
 mRepository.insert(clock);

猜你喜欢

转载自blog.csdn.net/firesmog/article/details/78870078
今日推荐