• MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除


    目录

    1.条件查询、多条件查询

    MyBatisPlus将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合。

    1. @Test
    2. void testGetByCondition() {
    3. // 方式一:按条件查询
    4. QueryWrapper<User> qw = new QueryWrapper<User>();
    5. qw.lt("age", 20);
    6. List<User> userList = userDao.selectList(qw);
    7. System.out.println(userList);
    8. // 方式二:lambda格式
    9. QueryWrapper<User> qw2 = new QueryWrapper<User>();
    10. qw2.lambda().lt(User::getAge, 10);
    11. List<User> userList2 = userDao.selectList(qw2);
    12. System.out.println(userList2);
    13. // 方式三:lambda格式
    14. LambdaQueryWrapper<User> qw3 = new LambdaQueryWrapper<User>();
    15. qw3.lt(User::getAge, 10);
    16. List<User> userList3 = userDao.selectList(qw3);
    17. System.out.println(userList3);
    18. // 多条件查询
    19. LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
    20. // 1030岁之间
    21. // lqw.lt(User::getAge, 30).gt(User::getAge, 10);
    22. // 小于10岁或大于30
    23. lqw.lt(User::getAge, 10).or().gt(User::getAge, 30);
    24. List<User> userList4 = userDao.selectList(lqw);
    25. }

    2.条件查询null判定

    封装User模型的查询条件,这里age是具有上下限的,User类里面的age作为下限,这里的age2作为上限。

    domain.query.UserQuery.java

    1. package com.example.domain.query;
    2. import com.example.domain.User;
    3. import lombok.Data;
    4. @Data
    5. public class UserQuery extends User {
    6. private int age2;
    7. }

    ①if语句控制

    ②条件参数控制

    3. 查询投影

    查询结果包含模型类中的部分属性

    查询结果包含模型类中未定义的属性

    4.查询条件

     

     

    5.@TableField注解和@TableName注解

    问题一:表字段和编码属性设计不同步
    问题二:编码中添加了数据库中未定义的属性
    问题三:设定某个字段不参与查询,比如密码pwd字段
    问题四:表名与编码开发设计不同步

    前三个问题采用@TableField注解,问题四采用@TableName注解

    6.id生成策略控制

    不同的表,应用不同的id生成策略。

    • 日志:自增(1,2,3....)
    • 购物订单:特殊规则(FQ23948c232e)
    • 外卖单:关联地区、日期等信息

    使用@TableId注解

    7. 多记录操作

     

    8.逻辑删除

    删除操作的问题:业务数据从数据库中丢弃

    逻辑删除:为数据设置是否可用状态字段,删除时设置字段为不可用状态,数据保留在数据库中。

    具体使用@TableLogic注解

  • 相关阅读:
    BP神经网络需要训练的参数,BP神经网络图像识别
    uvm中transaction的response和id的解读
    用Asm生成Class字节码文件
    StretchBlt()、Bitblt用法详解
    GAM注意力机制
    带隙基准中运放相位裕度与增益裕度
    不小心清空了回收站怎么恢复,回收站删除的东西可以恢复吗
    【Java 进阶篇】HTML块级元素详解
    AIGC(生成式AI)试用 4 -- 从模糊到精确
    linux安装jdk1.8
  • 原文地址:https://blog.csdn.net/YINZHE__/article/details/132697311