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的開發,讓開發更高效。