本篇介绍Query类,Query是一个查询参数类,封装了查询条件,分页,排序等功能。
Query里面封装了一系列查询参数,主要分为以下几类:
下面逐个讲解每个参数的用法。
一般来说分页的使用比较简单,通常是两个参数,
pageIndex:当前页索引,pageSize:每页几条数据。
Query类使用**page(pageIdnex, pageSize)**方法来设置。
假如我们要查询第二页,每页10条数据,代码可以这样写:
Query query = new Query().page(2, 10);
List<User> list = dao.find(query);
如果要实现不规则分页,可以这样写:
Query query = new Query().limit(3,5);
// 对应mysql:limit 3,5
Query query = new Query();
List<User> list = dao.findAll(query);
设置排序:
orderby(String sortname, Sort sort)
其中sortname为数据库字段,非javaBean属性
Query query = new Query().orderby("create_time",Sort.DESC);
dao.find(query);
添加多个排序字段可以在后面追加:
query.orderby("create_time",Sort.DESC).orderby("id",Sort.ASC);
条件参数是用的最多一个,因为在查询中往往需要加入各种条件。
easymybatis在条件查询上面做了一些封装,这里不做太多讲解,只讲下基本的用法,以后会单独开一篇文章来介绍。感兴趣的同学可以自行查看源码,也不难理解。
条件参数使用非常简单,Query对象封装一系列常用条件查询。
Query query = new Query();
query.eq("username","张三");
List<User> list = dao.find(query);
通过方法名即可知道eq表示等于’=’,同理lt表示小于<,gt表示大于>
查询方式 | 说明 |
---|---|
eq | 等于= |
gt | 大于> |
lt | 小于< |
ge | 大于等于>= |
le | 小于等于<= |
notEq | 不等于<> |
like | 模糊查询 |
in | in()查询 |
notIn | not in()查询 |
isNull | NULL值查询 |
notNull | IS NOT NULL |
notEmpty | 字段不为空,非NULL且有内容 |
isEmpty | 字段为NULL或者为” |
如果上述方法还不能满足查询需求的话,我们可以使用自定sql的方式来编写查询条件,方法为:
Query query = new Query();
query.sql(" username='Jim' OR username='Tom'");
注意:sql()方法不会处理sql注入问题,因此尽量少用。
在某些场景下,我们只想获取表里面几个字段的信息,不想查询所有字段。此时使用方式如下:
Query query = new Query();
// 只返回id,username
query.setColumns(Arrays.asList("id","username"));
List<TUser> list = dao.find(query);
这里的”id”,”username”都为数据库字段。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/thc1987/article/details/79347054
内容来源于网络,如有侵权,请联系作者删除!