Query是一个查询参数类,一般配合Dao一块儿使用。java
Query里面封装了一系列查询参数,主要分为如下几类:mysql
下面逐个讲解每一个参数的用法。git
通常来讲分页的使用比较简单,一般是两个参数, pageIndex:当前页索引,pageSize:每页几条数据。 Query类使用**setPage(pageIdnex, pageSize)**方法来设置。 假如咱们要查询第二页,每页10条数据,代码能够这样写:spring
Query query = new Query(); query.setPage(2, 10); List<User> list = dao.find(query);
若是要实现不规则分页,能够这样写:sql
Query query = new Query(); query.setStart(3).setLimit(5); // 对应mysql:limit 3,5
设置排序,有两个方法:数据库
addSort(String sortname) addSort(String sortname, Sort sort)
其中sortname为数据库字段,非javaBean属性springboot
Query query = new Query(); query.addSort("create_time",Sort.DESC); dao.find(query);
添加多个排序字段能够在后面追加:mybatis
query.addSort("create_time",Sort.DESC).addSort("id",Sort.ASC);
条件参数是用的最多一个,由于在查询中每每须要加入各类条件。 easymybatis在条件查询上面作了一些封装,这里不作太多讲解,只讲下基本的用法,之后会单独开一篇文章来介绍。感兴趣的同窗能够自行查看源码,也不难理解。.net
条件参数使用很是简单,Query对象封装一系列经常使用条件查询。code
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"都为数据库字段。
easymybatis是一个mybatis加强类库,目的为简化mybatis的开发,让开发更高效。