前言
上口诀:
- 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格