这篇文章主要介绍 OrmLite 框架中使用到的一些查询方法.
在SQL语句中,经常会用到where语句,where 进行条件筛选。
dao.queryBuilder.()where()方法返回一个where对象,where中提供了很多方法来进行条件筛选,下边逐个讲where中的方法。
使用示范:mDao.queryBuilder().where().eq("id", 2).query();
对应SQL:SELECT * FROM t_person
WHERE id
= 2
使用示范:mDao.queryBuilder().where().lt("id", 2).query();
对应SQL:SELECT * FROM t_person
WHERE id
< 2
使用示范:mDao.queryBuilder().where().gt("id", 2).query();
对应SQL:SELECT * FROM t_person
WHERE id
> 2
使用示范:mDao.queryBuilder().where().ge("id", 2).query();
对应SQL:SELECT * FROM t_person
WHERE id
>= 2
使用示范:mDao.queryBuilder().where().le("id", 2).query();
对应SQL:SELECT * FROM t_person
WHERE id
<= 2
使用示范:mDao.queryBuilder().where().ne("id", 2).query();
对应SQL:SELECT * FROM t_person
WHERE id
<> 2
使用示范:mDao.queryBuilder().where().in("id", 1,2).query();
对应SQL:SELECT * FROM t_person
WHERE id
IN (1,2 )
使用示范:mDao.queryBuilder().where().notIn("id",1,2).query();
对应SQL:SELECT * FROM t_person
WHERE id
NOT IN (1 ,2 )
使用示范: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%'
使用示范:mDao.queryBuilder().where().between("id", 1, 2).query(); 获取id是1到2之间的结果
对应SQL:SELECT * FROM `t_person` WHERE `id` BETWEEN 1 AND 2
使用示范:mDao.queryBuilder().where().lt("id", 3).and().gt("id", 1).query();
对应SQL:SELECT * FROM `t_person` WHERE (`id` < 3 AND `id` > 1 )
使用示范:mDao.queryBuilder().where().eq("id", 1).or().eq("id", 2).query();
对应SQL:SELECT * FROM `t_person` WHERE (`id` = 1 OR `id` = 2 )
根据指定列名排序,降序,升序
使用示范:mDao.queryBuilder().orderBy("id", false).query(); //参数false表示降序,true表示升序。
对应SQL:SELECT * FROM `t_person` ORDER BY `id` DESC(降序)
过滤指定列不重复数据行,重复的只返回一次。
使用示范:mDao.queryBuilder().selectColumns("City").distinct().query();
对应SQL:SELECT DISTINCT `City` FROM `t_person`
按照指定列分组
使用示范:mDao.queryBuilder().groupBy("city").query();
对应SQL:SELECT * FROM t_person
GROUP BY city
offset跳过指定的行数
limit限制获取指定行数
使用示范:mDao.queryBuilder().offset(2).limit(2).query(); 可以用来分页
对应SQL:SELECT * FROM t_person
LIMIT 2 OFFSET 2
等同于sql中的Having,针对分组数据,进行聚合函数(SUM, COUNT, MAX, AVG)运算。
使用示范:mPersonList = mDao.queryBuilder().groupBy("City").having("SUM(id)>4").query()
对应SQL:SELECT * FROM t_person
GROUP BY City
HAVING SUM(id)>4
返回查询结果的总数
使用示范:mDao.queryBuilder().countOf()
对应SQL:SELECT COUNT(*) FROM t_person
返回一个结果集的迭代器。
使用示范:Iterator<Person> iterator = mDao.queryBuilder().iterator();
queryForFirst
返回所有行的第一行。
使用示范:mDao.queryBuilder().queryForFirst();