1. 程式人生 > 其它 >mybatisPlus-wrapper條件構造器

mybatisPlus-wrapper條件構造器

承接:mybatisPlus-效能分析外掛

1 在測試包下編寫一個新測試類WrapperTest.java

src/test/java/com/lv/mybatis_plus/WrapperTest.java

package com.lv.mybatis_plus;

import com.lv.mybatis_plus.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class WrapperTest {
    @Autowired
    private UserMapper userMapper;
    
}

2 多條件查詢

src/test/java/com/lv/mybatis_plus/WrapperTest.java

@Test
void test1() {
    //查詢name不為空,郵箱不為空的,並且年齡大於等於12的使用者
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    wrapper
            .isNotNull("name")
            .isNotNull("email")
            .ge("age",12);
    userMapper.selectList(wrapper).forEach(System.out::println); //和我們剛才學習的map對比一下
}

執行測試檢視控制檯生成的sql

3 條件查詢

src/test/java/com/lv/mybatis_plus/WrapperTest.java

@Test
void test2(){
    //查詢名字是可樂
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    wrapper.eq("name","Tom");
    User user = userMapper.selectOne(wrapper); //查詢一個數據,出現多個結果使用List 或者 Map
    System.out.println(user);
}

執行,檢視控制檯生成的sql

4 區間條件查詢

src/test/java/com/lv/mybatis_plus/WrapperTest.java

@Test
void test3(){
    //查詢年齡在 22 ~ 25 歲 之間的使用者
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    wrapper.between("age",20,25); //區間
    Integer count = userMapper.selectCount(wrapper);//查詢結果數
    System.out.println(count);
}

執行,檢視控制檯生成的sql

5 模糊查詢

src/test/java/com/lv/mybatis_plus/WrapperTest.java

@Test
void test4(){
    //名字裡面不包含a的使用者
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    // likeRight右邊加%,likeLeft左邊加%
    wrapper
            .notLike("name","a")
            .likeRight("email","t");
    List<Map<String, Object>> maps = userMapper.selectMaps(wrapper);
    maps.forEach(System.out::println);
}

執行,檢視控制檯生成的sql

6 拼接子查詢sql

src/test/java/com/lv/mybatis_plus/WrapperTest.java

@Test
void test5(){
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    //id 在子查詢中查出來
    wrapper.inSql("id","select id from user where id<3");
    List<Object> objects = userMapper.selectObjs(wrapper);
    objects.forEach(System.out::println);
}

執行,檢視控制檯生成的sql

7 排序查詢

src/test/java/com/lv/mybatis_plus/WrapperTest.java

@Test
void test6(){
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    //通過id進行降序排序
    wrapper.orderByDesc("id");
    List<User> users = userMapper.selectList(wrapper);
    users.forEach(System.out::println);
}

執行,檢視控制檯生成的sql

其它的查詢方式可以參照官方文件: 條件構造器 | MyBatis-Plus (baomidou.com)