您好,登錄后才能下訂單哦!
這篇“mybatis Example Criteria like模糊查詢問題怎么解決”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“mybatis Example Criteria like模糊查詢問題怎么解決”文章吧。
XXXExample類用于構造復雜的篩選條件
它包含一個名為Criteria的內部靜態類,它包含將在where子句中一起結合的條件列表。
Criteria類的集合允許您生成幾乎無限類型的where子句。
可以使用createCriteria方法或or方法創建Criteria對象。
當使用createCriteria方法創建第一個Criteria對象時,它會自動添加到Criteria對象列表中 -
如果不需要其他子句,則可以輕松編寫簡單的Where子句。使用or方法時,Criteria類將添加到所有實例的列表中。
官方建議僅使用or方法創建Criteria類。這種方法可以使代碼更具可讀性。
Criteria內部類包括每個字段的andXXX方法,以及每個標準SQL謂詞
包括:
字段方法 | 含義 |
---|---|
IS NULL | 表示相關列必須為NULL |
IS NOT NULL | 表示相關列不能為NULL |
=(等于) | 表示相關列必須等于方法調用中傳入的值 |
<>(不等于) | 表示相關列不能等于方法調用中傳入的值 |
>(大于) | 表示相關列必須大于方法調用中傳入的值 |
> =(大于或等于) | 表示相關列必須大于或等于方法調用中傳入的值 |
<(小于) | 表示相關列必須小于方法調用中傳入的值 |
<=(小于或等于) | 表示相關列必須小于或等于方法調用中傳入的值 |
LIKE | 意味著相關列必須“類似”方法調用中傳入的值。代碼不會添加所需的’%’,您必須自己在方法調用中傳入的值中設置該值。 |
NOT LIKE | 意味著相關列必須“不喜歡”方法調用中傳入的值。代碼不會添加所需的’%’,您必須自己在方法調用中傳入的值中設置該值。 |
BETWEEN | 意味著相關列必須“在”方法調用中傳入的兩個值之間。 |
NOT BETWEEN | 意味著相關列必須“不在”方法調用中傳入的兩個值之間。 |
IN | 表示相關列必須是方法調用中傳入的值列表之一。 |
NOT IN | 表示相關列不能是方法調用中傳入的值列表之一。 |
TestTableExample example = new TestTableExample(); example.createCriteria().andField1EqualTo(5);
或者
TestTableExample example = new TestTableExample(); example.or().andField1EqualTo(5);
實際上動態生成的where子句是這樣
where field1 = 5
TestTableExample example = new TestTableExample(); example.or() .andField1EqualTo(5) .andField2IsNull(); example.or() .andField3NotEqualTo(9) .andField4IsNotNull(); List<Integer> field5Values = new ArrayList<Integer>(); field5Values.add(8); field5Values.add(11); field5Values.add(14); field5Values.add(22); example.or() .andField5In(field5Values); example.or() .andField6Between(3, 7);
實際上動態生成的where子句是這樣
where (field1 = 5 and field2 is null) or (field3 <> 9 and field4 is not null) or (field5 in (8, 11, 14, 22)) or (field6 between 3 and 7)
可以通過在任何示例類上調用setDistinct(true)方法來強制查詢為DISTINCT。
自己根據理解配合PageHelper做了一個簡單的多條件模糊查詢加深理解
具體實現如下,支持多個字段的同時搜索
PageHelper.startPage(pageNum,pageSize); TbBrandExample example = new TbBrandExample(); TbBrandExample.Criteria criteria = example.createCriteria(); if (tbBrand != null) { if (tbBrand.getName() != null && tbBrand.getName().length()>0) { criteria.andNameLike("%"+tbBrand.getName()+"%"); } if (tbBrand.getFirstChar() != null && tbBrand.getFirstChar().length()>0) { criteria.andFirstCharLike("%"+tbBrand.getFirstChar()+"%"); } } Page<TbBrand> page = (Page<TbBrand>) brandMapper.selectByExample(example); return new PageResult((int) page.getTotal(),page.getResult());
以上就是關于“mybatis Example Criteria like模糊查詢問題怎么解決”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。