长生的梦呓


  • 归档
  • 算法
  • 基础
  • 关于

  • 分类
  • 日志
  • Servlet
  • Archive
  • 数据结构
  • IO 流

  • 标签
  • 友链
  • MyBatis
  • About
  • Spring 5
  • Java SE
  • Java EE
  • Algorithms
  • 新特性
  • 位运算技巧

  • 搜索
内网穿透 项目实战 数据库 MySQL 安卓踩坑 开发工具 设计模式 Enum 枚举 Linux MyBatis-plus JSON IDEA Transactions AOP IO 流 DP IoC 与 DI 位运算技巧 工具类 学习技巧 Git JDK 排序 Spring Boot Spring MVC Spring Framework MyBatis Log4J Regex Jsoup JDBC 数据结构 递推 递归 算法 Servlet与JSP 小难 中等 简单

【MyBatis-Plus】(8)条件构造器

发表于 2020-04-24 | 2 | 阅读次数 499

一、条件构造器

官方文档:条件构造器

条件抽象类 Wrapper非常重要。他的子类AbstractWrapper有非常多方法。一些复杂的sql条件就可以使用"*AbstractWrapper"的子类来替代!

例如,WHERE 子句的一些条件查询。

1.QueryWrapper 使用

QueryWrapper 对象主要用于查询时设置条件。

主要参考官方,下列代码供参考,使用的还是之前的user数据库。

@SpringBootTest
public class WrapperTest {
    @Autowired
    UserMapper userMapper;

    @Test
    public void t1() {
        // 查询年龄等于20的用户,且名字不等于'123'的用户
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.eq("age", 20).ne("name", "123");
        List<User> users = userMapper.selectList(wrapper);
        users.forEach(System.out::println);
    }

    @Test
    public void t2() {
        // 查询id大于3,且年龄大于等于18的用户
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.gt("id", 3).ge("age", 18);
        List<User> users = userMapper.selectList(wrapper);
        users.forEach(System.out::println);
    }

    @Test
    public void t3() {
        // 查询id小于10,且年龄小于等于20的用户
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.lt("id", 10).le("age", 20);
        List<User> users = userMapper.selectList(wrapper);
        users.forEach(System.out::println);
    }

    @Test
    public void t4() {
        // 查询id在1-10,且年龄不在0-20和30-40的用户
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.between("id", 1, 10).notBetween("age", 0, 20)
                .notBetween("age", 30, 40);
        List<User> users = userMapper.selectList(wrapper);
        users.forEach(System.out::println);
    }

    @Test
    public void t5() {
        // 查询邮箱包含test,名字不包含张三的用户
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.like("email", "test").notLike("name", "张三");
        List<User> users = userMapper.selectList(wrapper);
        users.forEach(System.out::println);
    }

    @Test
    public void t6() {
        // 查询id为1,2,3,4,5,查询结果降序排序。
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.in("id", 1,2,3,4,5).orderByDesc("id");
        List<User> users = userMapper.selectList(wrapper);
        users.forEach(System.out::println);
    }

    @Test
    public void t7() {
        // 查询id在指定值的用户。(指定值使用sql语句进行查询)
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.inSql("id", "SELECT id FROM user WHERE id <= 3");
        List<User> users = userMapper.selectList(wrapper);
        users.forEach(System.out::println);
    }
}

官方文档中的方法作用解释图:

image

上图图参考自他人博客:链接

2.UpdateWrapper 使用

UpdateWrapper 可以用于更新操作,更新数据为指定的值。

    @Test
    public void t8() {
        // 将所有创建时间设置为当前时间
        UpdateWrapper<User> wrapper = new UpdateWrapper<>();
        wrapper.set("create_time", new Date());

        userMapper.update(null, wrapper);
    }

至此,条件构造器 Wrapper已结束。

  • 本文作者: 长生的梦呓
  • 本文链接: https://shengjava.com/archives/mybatis-plus8条件构造器
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# 内网穿透 # 项目实战 # 数据库 # MySQL # 安卓踩坑 # 开发工具 # 设计模式 # Enum # 枚举 # Linux # MyBatis-plus # JSON # IDEA # Transactions # AOP # IO 流 # DP # IoC 与 DI # 位运算技巧 # 工具类 # 学习技巧 # Git # JDK # 排序 # Spring Boot # Spring MVC # Spring Framework # MyBatis # Log4J # Regex # Jsoup # JDBC # 数据结构 # 递推 # 递归 # 算法 # Servlet与JSP # 小难 # 中等 # 简单
【MyBatis-Plus】(7)性能分析插件
【MyBatis-Plus】(9)代码生成器
  • 文章目录
  • 站点概览
长生的梦呓

长生的梦呓

110 日志
39 分类
40 标签
RSS
E-mail CSDN
Creative Commons
Links
  • CSDN 地址
  • waltz26
  • Ryan Wang's Blog
  • JohnNiang's Blog
  • 廖雪峰
  • 菜鸟教程
© 2021 长生的梦呓
浙ICP备20005262号-1