当前位置: 首页 > ai >正文

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

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 常用查询方法的总结:

方法名示例代码作用描述适用场景示例
eqeqWrapper.eq(User::getId, 1);查询字段等于指定值的数据。精确查找某个 ID 的用户信息。
neneWrapper.ne(User::getId, 1);查询字段不等于指定值的数据。排除特定 ID 的记录。
gtgtWrapper.gt(User::getAge, 20);查询字段大于指定值的数据。获取年龄超过 20 的用户。
ltltWrapper.lt(User::getAge, 30);查询字段小于指定值的数据。查找年龄低于 30 的用户。
gegeWrapper.ge(User::getAge, 25);查询字段大于等于指定值的数据。获取年龄 ≥ 25 的用户。
leleWrapper.le(User::getAge, 25);查询字段小于等于指定值的数据。获取年龄 ≤ 25 的用户。
betweenbetweenWrapper.between(User::getAge, 20, 30);查询字段在两个值之间的数据。查找年龄在 20 到 30 之间的用户。
likelikeWrapper.like(User::getName, "张");模糊匹配字段内容(SQL LIKE)。查找名字中包含“张”的用户。
orderByDescorderByWrapper.orderByDesc(User::getAge);按照指定字段降序排列结果。按年龄从高到低排序用户。
ininWrapper.in(User::getId, 1, 2, 3);查询字段值在给定集合中的记录。获取 ID 为 1、2、3 的用户。
notInnotInWrapper.notIn(User::getId, 1, 2, 3);查询字段值不在给定集合中的记录。排除 ID 为 1、2、3 的用户。
isNullisNullWrapper.isNull(User::getEmail);查询字段为空(NULL)的记录。查找没有填写邮箱的用户。
isNotNullisNotNullWrapper.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);// betweenLambdaQueryWrapper<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);// orderByLambdaQueryWrapper<User> orderByWrapper = new LambdaQueryWrapper<>();orderByWrapper.orderByDesc(User::getAge);List<User> orderByUsers = userMapper.selectList(orderByWrapper);System.out.println("orderBy查询结果: " + orderByUsers);// inLambdaQueryWrapper<User> inWrapper = new LambdaQueryWrapper<>();inWrapper.in(User::getId, 1, 2, 3);List<User> inUsers = userMapper.selectList(inWrapper);System.out.println("in查询结果: " + inUsers);// not inLambdaQueryWrapper<User> notInWrapper = new LambdaQueryWrapper<>();notInWrapper.notIn(User::getId, 1, 2, 3);List<User> notInUsers = userMapper.selectList(notInWrapper);System.out.println("not in查询结果: " + notInUsers);// is nullLambdaQueryWrapper<User> isNullWrapper = new LambdaQueryWrapper<>();isNullWrapper.isNull(User::getEmail);List<User> isNullUsers = userMapper.selectList(isNullWrapper);System.out.println("is null查询结果: " + isNullUsers);// is not nullLambdaQueryWrapper<User> isNotNullWrapper = new LambdaQueryWrapper<>();isNotNullWrapper.isNotNull(User::getEmail);List<User> isNotNullUsers = userMapper.selectList(isNotNullWrapper);System.out.println("is not null查询结果: " + isNotNullUsers);
}
http://www.xdnf.cn/news/8398.html

相关文章:

  • Python图形化秒表:使用Turtle打造精确计时工具
  • 劳特巴赫trace32异常问题汇总
  • 17、Python对象操作全解析:同一运算符、成员运算符与整数缓存机制实战
  • 【C++】笔试强训 第二天
  • Github 2025-05-23 Java开源项目日报 Top10
  • mysql语句执行流程
  • LeetCode Hot100(字串)
  • 电子电路:深入理解电磁耦合的定义与应用
  • 5.2.2 使用注解方式整合MyBatis
  • 树莓派内核源码的下载,配置,编译和替换
  • 【mysql】mysql的高级函数、高级用法
  • AI编辑器规则
  • LeRobot 框架的开发指南 (上)
  • 【【嵌入式开发 Linux 常用命令系列 19 -- linux top 命令的交互使用介绍】
  • Vue常用自定义指令-积累的魅力【VUE】
  • DETR3D- 3D Object Detection from Multi-view Images via 3D-to-2D Queries
  • 展锐 Android 15 锁定某个App版本的实现
  • OpenGL ES 基本基本使用、绘制基本2D图形
  • DDS compiler(6.0) IP核配置与使用教程
  • 基于Rust语言的Rocket框架和Sqlx库开发WebAPI项目记录(五)
  • 【数据架构05】数据要素架构篇
  • 二、OpenCV图像处理-几何变换
  • 服务接口鉴权与内部认证:自定义注解与AOP实现的企业级实践
  • Android 14 Binderized HAL开发实战指南(AIDL版)
  • StringBuilder 和 StringBuffer 的线程安全分析
  • maven添加自己下载的jar包到本地仓库
  • Python字典的工作原理:深入理解哈希表实现
  • Redis主从+哨兵+集群分片
  • 回溯算法:解锁多种问题的解决之门
  • 利用Qt绘图随机生成带多种干扰信息的数字图片