中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis?Example?Criteria?like模糊查詢問題怎么解決

發布時間:2023-02-27 16:24:16 來源:億速云 閱讀:149 作者:iii 欄目:開發技術

這篇“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類

Criteria內部類包括每個字段的andXXX方法,以及每個標準SQL謂詞

包括:

字段方法含義
IS NULL表示相關列必須為NULL
IS NOT NULL表示相關列不能為NULL
=(等于)表示相關列必須等于方法調用中傳入的值
<>(不等于)表示相關列不能等于方法調用中傳入的值
>(大于)表示相關列必須大于方法調用中傳入的值
> =(大于或等于)表示相關列必須大于或等于方法調用中傳入的值
<(小于)表示相關列必須小于方法調用中傳入的值
<=(小于或等于)表示相關列必須小于或等于方法調用中傳入的值
LIKE意味著相關列必須“類似”方法調用中傳入的值。代碼不會添加所需的&rsquo;%&rsquo;,您必須自己在方法調用中傳入的值中設置該值。
NOT LIKE意味著相關列必須“不喜歡”方法調用中傳入的值。代碼不會添加所需的&rsquo;%&rsquo;,您必須自己在方法調用中傳入的值中設置該值。
BETWEEN意味著相關列必須“在”方法調用中傳入的兩個值之間。
NOT BETWEEN意味著相關列必須“不在”方法調用中傳入的兩個值之間。
IN表示相關列必須是方法調用中傳入的值列表之一。
NOT IN表示相關列不能是方法調用中傳入的值列表之一。

簡單實例

生成簡單的WHERE子句

  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模糊查詢問題怎么解決”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

赤城县| 开封县| 登封市| 泰顺县| 甘谷县| 柘荣县| 吴忠市| 新兴县| 海城市| 博乐市| 湖口县| 昌宁县| 绩溪县| 定西市| 嘉兴市| 元朗区| 广丰县| 茶陵县| 诏安县| 鄯善县| 阿巴嘎旗| 屏东市| 循化| 东乌| 柳河县| 得荣县| 绥芬河市| 韩城市| 舒兰市| 三河市| 泽库县| 永州市| 潮安县| 枣阳市| 岱山县| 文水县| 张掖市| 昌乐县| 琼海市| 即墨市| 黎平县|