Spring Boot是什么?MybatisPlus常用注解,LambdaQueryWrapper常用方法

发布于:2025-05-24 ⋅ 阅读:(11) ⋅ 点赞:(0)

DAY26.1 Java核心基础

Spring Boot是什么?

Spring Java开放的标准,但是Spring配置比较繁琐,尤其在大型项目,会出现很多重复的工作,为了让Spring变得更加简高效,SpringBoot应运而生,让项目开发变得更加简洁

开发者可以通过Springboot快速搭建一个Java应用程序

Spring Boot完成的核心工作是自动装配,讲项目中运用的组件进行自动注入,开发者只需要关注业务逻辑,而不需要进行各种繁琐的配置,从而提高开发效率

Spring Boot对常用的第三方库都提供了配置的方案,可以自动整合其它第三方库,只需要导入相关依赖,不需要开发者自己配置

Spring Boot优势:

  • 不需要xml文件
  • 内嵌了web服务器(tomcat)
  • 默认支持Json格式的数据,不需要额外配置
  • 支持RestFul风格

增删改查(Get、Post、Put、Delete)

  • 只需要一个配置文件就可以配置所以的个性化信息

SpringBoot是一个用很少的配置就可以快速搭建Spring 应用的框架,并且很好的集成了常用的第三方库,让开发者可以快速进行企业级应用开发

SSM 是基于Spring 来管理SpringMVC和Mybatis

也可以基于Spring Boot来管理SpringMVC和Mybatis

自动装配:Spring Boot引入哪个框架,它就会自动装载该框架并且运行

在Spring Boot 工程中引入了Mybatis依赖,那么SpringBoot就会自动创建相关的对象datasource、SqlsessionFactory…不用自己创建了

如果去掉了该框架则会相应去除该框架相关的创建

MybatisPlus

常用注解

@TableName:可以设置表名字,如果不设置默认使用类名的小写

@Data
@TableName("user")
public class User  {
    @TableId(type = IdType.AUTO)
    private Integer id;
    private String name;
    private String pwd;
    private String email;
    private String role;
    private Integer age;
}

映射数据库的user表

image-20250523152606155

@TableId(value=“id”)

设置为主键,value是主键字段名,如果不填也会自动识别用字段的小写

type = IdType.AUTO:标记为主键自增

@TableField(value=“name”)

设置为普通字段,同样可以设置value,映射为数据库的字段

常用方法

以下是以表格形式对 LambdaQueryWrapper 常用查询方法的总结:

方法名 示例代码 作用描述 适用场景示例
eq eqWrapper.eq(User::getId, 1); 查询字段等于指定值的数据。 精确查找某个 ID 的用户信息。
ne neWrapper.ne(User::getId, 1); 查询字段不等于指定值的数据。 排除特定 ID 的记录。
gt gtWrapper.gt(User::getAge, 20); 查询字段大于指定值的数据。 获取年龄超过 20 的用户。
lt ltWrapper.lt(User::getAge, 30); 查询字段小于指定值的数据。 查找年龄低于 30 的用户。
ge geWrapper.ge(User::getAge, 25); 查询字段大于等于指定值的数据。 获取年龄 ≥ 25 的用户。
le leWrapper.le(User::getAge, 25); 查询字段小于等于指定值的数据。 获取年龄 ≤ 25 的用户。
between betweenWrapper.between(User::getAge, 20, 30); 查询字段在两个值之间的数据。 查找年龄在 20 到 30 之间的用户。
like likeWrapper.like(User::getName, "张"); 模糊匹配字段内容(SQL LIKE)。 查找名字中包含“张”的用户。
orderByDesc orderByWrapper.orderByDesc(User::getAge); 按照指定字段降序排列结果。 按年龄从高到低排序用户。
in inWrapper.in(User::getId, 1, 2, 3); 查询字段值在给定集合中的记录。 获取 ID 为 1、2、3 的用户。
notIn notInWrapper.notIn(User::getId, 1, 2, 3); 查询字段值不在给定集合中的记录。 排除 ID 为 1、2、3 的用户。
isNull isNullWrapper.isNull(User::getEmail); 查询字段为空(NULL)的记录。 查找没有填写邮箱的用户。
isNotNull isNotNullWrapper.isNotNull(User::getEmail); 查询字段不为空(NOT NULL)的记录。 查找已填写邮箱的用户。

这些方法可以组合使用,构建更复杂的查询条件。通过 LambdaQueryWrapper,我们可以以类型安全的方式编写查询逻辑,避免 SQL 注入问题,并提高开发效率。

@Test
public void test3(){
    // 等于
    LambdaQueryWrapper<User> eqWrapper = new LambdaQueryWrapper<>();
    eqWrapper.eq(User::getId, 1);
    List<User> eqUsers = userMapper.selectList(eqWrapper);
    System.out.println("等于查询结果: " + eqUsers);

    // 不等于
    LambdaQueryWrapper<User> neWrapper = new LambdaQueryWrapper<>();
    neWrapper.ne(User::getId, 1);
    List<User> neUsers = userMapper.selectList(neWrapper);
    System.out.println("不等于查询结果: " + neUsers);

    // 大于
    LambdaQueryWrapper<User> gtWrapper = new LambdaQueryWrapper<>();
    gtWrapper.gt(User::getAge, 20);
    List<User> gtUsers = userMapper.selectList(gtWrapper);
    System.out.println("大于查询结果: " + gtUsers);

    // 小于
    LambdaQueryWrapper<User> ltWrapper = new LambdaQueryWrapper<>();
    ltWrapper.lt(User::getAge, 30);
    List<User> ltUsers = userMapper.selectList(ltWrapper);
    System.out.println("小于查询结果: " + ltUsers);

    // 大于等于
    LambdaQueryWrapper<User> geWrapper = new LambdaQueryWrapper<>();
    geWrapper.ge(User::getAge, 25);
    List<User> geUsers = userMapper.selectList(geWrapper);
    System.out.println("大于等于查询结果: " + geUsers);

    // 小于等于
    LambdaQueryWrapper<User> leWrapper = new LambdaQueryWrapper<>();
    leWrapper.le(User::getAge, 25);
    List<User> leUsers = userMapper.selectList(leWrapper);
    System.out.println("小于等于查询结果: " + leUsers);

    // between
    LambdaQueryWrapper<User> betweenWrapper = new LambdaQueryWrapper<>();
    betweenWrapper.between(User::getAge, 20, 30);
    List<User> betweenUsers = userMapper.selectList(betweenWrapper);
    System.out.println("between查询结果: " + betweenUsers);

    // like模糊查询
    LambdaQueryWrapper<User> likeWrapper = new LambdaQueryWrapper<>();
    likeWrapper.like(User::getName, "张");
    List<User> likeUsers = userMapper.selectList(likeWrapper);
    System.out.println("like查询结果: " + likeUsers);

    // orderBy
    LambdaQueryWrapper<User> orderByWrapper = new LambdaQueryWrapper<>();
    orderByWrapper.orderByDesc(User::getAge);
    List<User> orderByUsers = userMapper.selectList(orderByWrapper);
    System.out.println("orderBy查询结果: " + orderByUsers);

    // in
    LambdaQueryWrapper<User> inWrapper = new LambdaQueryWrapper<>();
    inWrapper.in(User::getId, 1, 2, 3);
    List<User> inUsers = userMapper.selectList(inWrapper);
    System.out.println("in查询结果: " + inUsers);

    // not in
    LambdaQueryWrapper<User> notInWrapper = new LambdaQueryWrapper<>();
    notInWrapper.notIn(User::getId, 1, 2, 3);
    List<User> notInUsers = userMapper.selectList(notInWrapper);
    System.out.println("not in查询结果: " + notInUsers);

    // is null
    LambdaQueryWrapper<User> isNullWrapper = new LambdaQueryWrapper<>();
    isNullWrapper.isNull(User::getEmail);
    List<User> isNullUsers = userMapper.selectList(isNullWrapper);
    System.out.println("is null查询结果: " + isNullUsers);

    // is not null
    LambdaQueryWrapper<User> isNotNullWrapper = new LambdaQueryWrapper<>();
    isNotNullWrapper.isNotNull(User::getEmail);
    List<User> isNotNullUsers = userMapper.selectList(isNotNullWrapper);
    System.out.println("is not null查询结果: " + isNotNullUsers);
}

网站公告

今日签到

点亮在社区的每一天
去签到