最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解MyBatis-Plus Wrapper條件構(gòu)造器查詢大全

 更新時間:2020年08月24日 10:41:58   作者:IT賤男  
這篇文章主要介紹了詳解MyBatis-Plus Wrapper條件構(gòu)造器查詢大全,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、引言

那么那么那么今天來說下MP中強(qiáng)大的條件查詢功能。

本章是基于上個案例來講的:MyBaits-Plus 快速入門案例

二、具體操作

首先來說說基本的查詢吧,根據(jù)主鍵或者簡單的查詢條件進(jìn)行查詢。

  /**
   * 通過單個ID主鍵進(jìn)行查詢
   */
  @Test
  public void selectById() {
    User user = userMapper.selectById(1094592041087729666L);
    System.out.println(user);
  }

  /**
   * 通過多個ID主鍵查詢
   */
  @Test
  public void selectByList() {
    List<Long> longs = Arrays.asList(1094592041087729666L, 1094590409767661570L);
    List<User> users = userMapper.selectBatchIds(longs);
    users.forEach(System.out::println);
  }

  /**
   * 通過Map參數(shù)進(jìn)行查詢
   */
  @Test
  public void selectByMap() {
    Map<String, Object> params = new HashMap<>();
    params.put("name", "張雨琪");
    List<User> users = userMapper.selectByMap(params);
    users.forEach(System.out::println);
  }


MyBatis-Plus還提供了Wrapper條件構(gòu)造器,具體使用看如下代碼:

/**
   * 名字包含雨并且年齡小于40
   * <p>
   * WHERE name LIKE '%雨%' AND age < 40
   */
  @Test
  public void selectByWrapperOne() {
    QueryWrapper<User> wrapper = new QueryWrapper();
    wrapper.like("name", "雨").lt("age", 40);
    List<User> users = userMapper.selectList(wrapper);
    users.forEach(System.out::println);
  }

  /**
   * 名字包含雨
   * 年齡大于20小于40
   * 郵箱不能為空
   * <p>
   * WHERE name LIKE '%雨%' AND age BETWEEN 20 AND 40 AND email IS NOT NULL
   */
  @Test
  public void selectByWrapperTwo() {
    QueryWrapper<User> wrapper = Wrappers.query();
    wrapper.like("name", "雨").between("age", 20, 40).isNotNull("email");
    List<User> users = userMapper.selectList(wrapper);
    users.forEach(System.out::println);
  }

  /**
   * 名字為王性
   * 或者年齡大于等于25
   * 按照年齡降序排序,年齡相同按照id升序排序
   * <p>
   * WHERE name LIKE '王%' OR age >= 25 ORDER BY age DESC , id ASC
   */
  @Test
  public void selectByWrapperThree() {
    QueryWrapper<User> wrapper = Wrappers.query();
    wrapper.likeRight("name", "王").or()
        .ge("age", 25).orderByDesc("age").orderByAsc("id");
    List<User> users = userMapper.selectList(wrapper);
    users.forEach(System.out::println);
  }

  /**
   * 查詢創(chuàng)建時間為2019年2月14
   * 并且上級領(lǐng)導(dǎo)姓王
   * <p>
   * WHERE date_format(create_time,'%Y-%m-%d') = '2019-02-14' AND manager_id IN (select id from user where name like '王%')
   */
  @Test
  public void selectByWrapperFour() {
    QueryWrapper<User> wrapper = Wrappers.query();
    wrapper.apply("date_format(create_time,'%Y-%m-%d') = {0}", "2019-02-14")
        .inSql("manager_id", "select id from user where name like '王%'");
    List<User> users = userMapper.selectList(wrapper);
    users.forEach(System.out::println);
  }

  /**
   * 查詢王姓
   * 并且年齡小于40或者郵箱不為空
   * <p>
   * WHERE name LIKE '王%' AND ( age < 40 OR email IS NOT NULL )
   */
  @Test
  public void selectByWrapperFive() {
    QueryWrapper<User> wrapper = Wrappers.query();
    wrapper.likeRight("name", "王").and(qw -> qw.lt("age", 40).or().isNotNull("email"));
    List<User> users = userMapper.selectList(wrapper);
    users.forEach(System.out::println);
  }

  /**
   * 查詢王姓
   * 并且年齡大于20 、年齡小于40、郵箱不能為空
   * <p>
   * WHERE name LIKE ? OR ( age BETWEEN ? AND ? AND email IS NOT NULL )
   */
  @Test
  public void selectByWrapperSix() {
    QueryWrapper<User> wrapper = Wrappers.query();
    wrapper.likeRight("name", "王").or(
        qw -> qw.between("age", 20, 40).isNotNull("email")
    );
    List<User> users = userMapper.selectList(wrapper);
    users.forEach(System.out::println);
  }

  /**
   * (年齡小于40或者郵箱不為空) 并且名字姓王
   * WHERE ( age < 40 OR email IS NOT NULL ) AND name LIKE '王%'
   */
  @Test
  public void selectByWrapperSeven() {
    QueryWrapper<User> wrapper = Wrappers.query();
    wrapper.nested(qw -> qw.lt("age", 40).or().isNotNull("email"))
        .likeRight("name", "王");
    List<User> users = userMapper.selectList(wrapper);
    users.forEach(System.out::println);
  }

  /**
   * 查詢年齡為30、31、32
   * WHERE age IN (?,?,?)
   */
  @Test
  public void selectByWrapperEight() {
    QueryWrapper<User> wrapper = Wrappers.query();
    wrapper.in("age", Arrays.asList(30, 31, 32));
    List<User> users = userMapper.selectList(wrapper);
    users.forEach(System.out::println);
  }

  /**
   * 查詢一條數(shù)據(jù)
   * limit 1
   */
  @Test
  public void selectByWrapperNine() {
    QueryWrapper<User> wrapper = Wrappers.query();
    wrapper.in("age", Arrays.asList(30, 31, 32)).last("limit 1");
    List<User> users = userMapper.selectList(wrapper);
    users.forEach(System.out::println);
  }

到此這篇關(guān)于詳解MyBatis-Plus Wrapper條件構(gòu)造器查詢大全的文章就介紹到這了,更多相關(guān) MyBatis-Plus Wrapper條件構(gòu)造器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Springboot整合thymleaf模板引擎過程解析

    Springboot整合thymleaf模板引擎過程解析

    這篇文章主要介紹了Springboot整合thymleaf模板引擎過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • java基本教程之線程讓步 java多線程教程

    java基本教程之線程讓步 java多線程教程

    本文對Thread中的線程讓步方法yield()進(jìn)行介紹,yield()的作用是讓步。它能讓當(dāng)前線程由“運(yùn)行狀態(tài)”進(jìn)入到“就緒狀態(tài)”,從而讓其它具有相同優(yōu)先級的等待線程獲取執(zhí)行權(quán),大家參考使用吧
    2014-01-01
  • Java面試題沖刺第十八天--Spring框架3

    Java面試題沖刺第十八天--Spring框架3

    這篇文章主要為大家分享了最有價值的三道關(guān)于Spring框架的面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Spring Security Oauth2.0 實(shí)現(xiàn)短信驗(yàn)證碼登錄示例

    Spring Security Oauth2.0 實(shí)現(xiàn)短信驗(yàn)證碼登錄示例

    本篇文章主要介紹了Spring Security Oauth2.0 實(shí)現(xiàn)短信驗(yàn)證碼登錄示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 配置java.library.path加載庫文件問題

    配置java.library.path加載庫文件問題

    這篇文章主要介紹了配置java.library.path加載庫文件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java實(shí)現(xiàn)解析ini文件對應(yīng)到JavaBean中

    Java實(shí)現(xiàn)解析ini文件對應(yīng)到JavaBean中

    ini 文件是Initialization File的縮寫,即初始化文件,是windows的系統(tǒng)配置文件所采用的存儲格式。這篇文章主要介紹了通過Java實(shí)現(xiàn)解析ini文件對應(yīng)到JavaBean中,需要的可以參考一下
    2022-01-01
  • java實(shí)現(xiàn)直線分形山脈

    java實(shí)現(xiàn)直線分形山脈

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)直線分形山脈,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • java實(shí)現(xiàn)簡易外賣訂餐系統(tǒng)

    java實(shí)現(xiàn)簡易外賣訂餐系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡易外賣訂餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Java空格替換逗號的實(shí)現(xiàn)示例

    Java空格替換逗號的實(shí)現(xiàn)示例

    在編程中,我們經(jīng)常需要對字符串進(jìn)行各種處理,其中一個常見的需求是將字符串中的逗號替換為空格,本文主要介紹了Java空格替換逗號的實(shí)現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • SpringMVC框架使用jackson封裝數(shù)據(jù)過程中遇到的問題及解決

    SpringMVC框架使用jackson封裝數(shù)據(jù)過程中遇到的問題及解決

    這篇文章主要介紹了SpringMVC框架使用jackson封裝數(shù)據(jù)過程中遇到的問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論

常宁市| 宜宾县| 湾仔区| 沁源县| 南华县| 济宁市| 城步| 溧阳市| 青冈县| 绥德县| 新巴尔虎右旗| 乐清市| 儋州市| 尼木县| 隆化县| 垦利县| 胶南市| 阆中市| 蓬溪县| 凤凰县| 韶山市| 泰安市| 土默特右旗| 乌兰察布市| 修水县| 黄石市| 永和县| 仁布县| 新泰市| 阿坝| 营山县| 嘉禾县| 永济市| 竹北市| 西藏| 罗甸县| 井冈山市| 突泉县| 观塘区| 盘山县| 泰安市|