前言 


上口诀:

  • SQL性能很重要,绑定变量效率高
  • 拼接SQL虽方便,注入风险非常高
  • 开源工具效率高,重复造车没必要
  • 手写SQL虽高端,能去掉时就去掉


目录

前言 

一、🍀引入依赖

 二、🍀YML配置

三、🍀常用方法栗子

🍀LambdaQueryWrapper<>常用方法

根据ID查询

根据条件查询

根据条件的集合查询

根据ID删除

根据条件删除

条件构造器

🍀QueryWrapper<> 与 LambdaQueryWrapper<>区别



一、🍀引入依赖

<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>

 二、🍀YML配置

mybatis-plus:
  #配置Mapper映射文件
  mapper-locations: classpath:/mapper/*.xml
  # 配置Mybatis数据返回类型别名(默认别名为类名)
  type-aliases-package: com.sa.entity
  configuration:
    # 自动驼峰命名
    map-underscore-to-camel-case: true
    # 打印sql
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

三、🍀常用方法栗子

下面方法例子的实体类 

@Data
public class Student {
    /*ID*/
    private Integer id;
    /*学号*/
    private Integer sno;
    /*姓名*/
    private String name;
    /*年龄*/
    private int age;
    /*班级名称*/
    private String className;
    /*地址*/
    private String address;
}

🍀LambdaQueryWrapper<>常用方法

LambdaQueryWrapper采用简明的拉姆达表达式查询数据

根据ID查询

Student student = studentService.getById(1);

根据条件查询

根据学生学号查询,返回一条数据

Student one = studentService.lambdaQuery().eq(Student::getSno,001).one()

根据条件的集合查询

根据地址查询到在河北的学生

List<Student> list = studentService.lambdaQuery().eq(Student::getAddress,"河北").list()

根据ID删除

boolean b = studentService.removeById(1);

根据条件删除

删除学生姓名等于张三 and 学生年龄是18

boolean b = lambdaUpdate().eq(Student::getName,"张三").eq(Student::getAge,18).remove();

条件构造器

<    <=  >    >=    <>   LIKE '%值%'
    lt() le() gt() ge() ne()  like()

如:根据姓名模糊查询,以此类推 

List<Student> list = studentService.lambdaQuery().like(Student::getName,"张三").list();

🍀QueryWrapper<> 与 LambdaQueryWrapper<>区别

QueryWrapper 的列名匹配使用的是 “数据库中的字段名(一般是下划线规则)”

LambdaQueryWrapper 的列名匹配使用的是“Lambda的语法,偏向于对象”。属于函数式编程,现在挺流行的,代码既简练又有b格