Springboot整合MyBatisPlus框架操作MySQL
1、MyBatis-Plus概述
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
【技术储备】
拥有 Java 开发环境以及相应 IDE
熟悉 Spring Boot
熟悉 Maven
【特征】

为简化开发而生
1、只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。
2、效率至上:只需简单配置,即可快速进行单表 CRUD 操作,从而节省大量时间。
3、丰富功能:代码生成、自动分页、逻辑删除、自动填充等功能一应俱全。
2、数据库支持
任何能使用 MyBatis 进行 CRUD, 并且支持标准 SQL 的数据库,具体支持情况如下,如果不在下列表查看分页部分教程 PR 您的支持。
MySQL,Oracle,DB2,H2,HSQL,SQLite,PostgreSQL,SQLServer,Phoenix,Gauss ,ClickHouse,Sybase,OceanBase,Firebird,Cubrid,Goldilocks,csiidb,informix,TDengine,redshift
达梦数据库,虚谷数据库,人大金仓数据库,南大通用(华库)数据库,南大通用数据库,神通数据库,瀚高数据库,优炫数据库,星瑞格数据库
3、快速上手案例
版本信息:springboot2.7.14+mysql5.1.42+mybatis-plus3.5.3.2
【工程结构】

3.1、创建springboot工程被导入相关依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.2</version>
</dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.42</version>
</dependency>
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional>
</dependency>
3.2、配置数据库相关信息
log-impl:控制台打印出mybatis执行时的具体sql、查询条件、返回值等
map-underscore-to-camel-case:mybatisplus在查询数据库的时候回默认的开启数据库下划线驼峰命名转化,我们需要关闭。
spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatisplususername: rootpassword: 123456mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplmap-underscore-to-camel-case: false# 如果是放在src/main/java目录下 classpath:/com/*/*/mapper/*Mapper.xml# 如果是放在resource目录 classpath:/mapper/**.xml#mapper-locations: classpath:/mapper/**.xml
3.3、创建数据库和表信息
CREATE DATABASE mybatisplus;
USE mybatisplus;
CREATE TABLE student(stu_id VARCHAR(50),stu_name VARCHAR(30),stu_sex VARCHAR(2),stu_age VARCHAR(4),stu_addr VARCHAR(50),stu_pwd VARCHAR(50)
)DEFAULT CHARSET=utf8;
INSERT INTO student VALUES('1001','晓春','男','33','安徽合肥','1001');
INSERT INTO student VALUES('1002','陈平安','男','18','安徽合肥','1002');
3.4、创建bean对象
@TableName("student"):定义映射表信息
@TableId("stu_id"):定义数据库主键
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("student")
public class Student {@TableId("stu_id")private String stu_id;private String stu_name;private String stu_sex;private String stu_age;private String stu_addr;private String stu_pwd;
}
3.5、创建Mapper接口
public interface StudentMapper extends BaseMapper<Student> {
}
3.6、在启动类中扫描mapper接口
通过@MapperScan("com.txc.mybatisplus.mapper")注解扫描mapper接口,注意地址不能写错了。
@SpringBootApplication
@MapperScan("com.txc.mybatisplus.mapper")
public class Mybatisplusdemo1Application {public static void main(String[] args) {SpringApplication.run(Mybatisplusdemo1Application.class, args);}
}
3.7、功能1:查询所有学生信息
通过springweb创建一个测试类,查询student表中的所有学生信息
@RestController
public class StudentController {@Autowired(required = false)StudentMapper studentMapper;@RequestMapping("/testmybatisplus")@ResponseBodypublic void testMybatisPlus() {List<Student> list=studentMapper.selectList(null);//Assert.isTrue(5 == list.size(), "");list.forEach(System.out::println);}
}
3.8、功能2:模糊查询学生信息
说明1:queryWrapper.eq("stu_name","陈平安");//表示根据stu_name字段查询陈平安
效果类似于:select * from student where stu_name=’陈平安’
说明2:queryWrapper.like("stu_addr","安徽合肥");//表示根据stu_addr模糊查询安徽合肥
效果类似于select * from student where stu_addr like ’%陈平安%’
两者合起来的效果是:
select * from student where stu_name=’陈平安’ and stu_addr like ’%陈平安%’;
@Controller
public class StudentController {@Autowired(required = false)StudentMapper studentMapper;//根据姓名查询学生信息@RequestMapping("/testMybatisPlusByName")@ResponseBodypublic void testMybatisPlusByName() {//QueryWrapper封装查询信息QueryWrapper<Student> queryWrapper=new QueryWrapper<>();//表示查询的时候表字段stu_name的值为陈平安queryWrapper.eq("stu_name","陈平安");//表示根据stu_addr模糊查询安徽合肥queryWrapper.like("stu_addr","安徽合肥");List<Student> list=studentMapper.selectList(queryWrapper);list.forEach(stu->{System.out.println(stu.getStu_name());});}
3.9、功能3:根据id查询学生信息
//根据id查询学生信息
@RequestMapping("/testMybatisPlusById")
@ResponseBody
public void testMybatisPlusById() {//QueryWrapper封装查询信息QueryWrapper<Student> queryWrapper=new QueryWrapper<>();//表示查询的时候表字段stu_name的值为陈平安queryWrapper.eq("stu_id","1001");Student stu=studentMapper.selectOne(queryWrapper);System.out.println(stu.toString());
}
}
3.10、功能3:添加学生信息
@Controller
public class StudentController {@Autowired(required = false)StudentMapper studentMapper;//添加学生信息@RequestMapping("/testMybatisPlusAdd")@ResponseBodypublic void testMybatisPlusAdd() {Student stu=new Student("1003","十一郎","男","34","安徽合肥","1003");studentMapper.insert(stu);System.out.println("=======数据添加成功========");}
}
3.11、功能4:修改学生信息
@Controller
public class StudentController {@Autowired(required = false)StudentMapper studentMapper;//修改学生信息@RequestMapping("/testMybatisPlusupdate")@ResponseBodypublic void testMybatisPlusupdate() {Student stu=new Student("1003","十一郎","男","34","安徽合肥","1003");studentMapper.updateById(stu);System.out.println("=======数据修改成功========");}
}
3.12、功能5:删除学生信息
@Controller
public class StudentController {@Autowired(required = false)StudentMapper studentMapper;//删除学生信息@RequestMapping("/testMybatisPlusDelete")@ResponseBodypublic void testMybatisPlusDelete() {Student stu=new Student();stu.setStu_id("1003");studentMapper.deleteById(stu);System.out.println("=======删除修改成功========");}
}
4、源码下载
源码属于vip资源,如果需要可在评论区留言,我修改成免费。
https://download.csdn.net/download/tangshiyilang/88276862
相关文章:
Springboot整合MyBatisPlus框架操作MySQL
1、MyBatis-Plus概述 MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 【技术储备】 拥有 Java 开发环境以及相应 IDE…...
基于Jenkins构建生产CICD环境(第二篇)
基于Jenkins自动打包并部署Tomcat环境 传统网站部署的流程 在运维过程中,网站部署是运维的工作之一。传统的网站部署的流程大致分为:需求分 析-->原型设计-->开发代码-->提交代码-->内网部署-->内网测试-->确认上线-->备份数据-->外网更新…...
ioctl、printk及多个此设备支持
一、ioctl操作实现 ioctl(Input/Output Control)是一个在 Unix-like 操作系统中的系统调用,用于控制设备或文件的各种操作。它允许用户空间程序与内核空间进行交互,执行一些特定的设备控制、状态查询或其他操作,而不必…...
电脑每次开机杀毒软件报iusb3mon.exe病毒已清除,电脑中病毒iusbmon杀毒办法,工具杀毒
不知道什么时候开始,我电脑C盘的系统数据存储文件夹programdata 不知不觉就没了,找不到了 programdata文件夹为存储系统数据文件的,这个文件不见了,而且我打开了显示隐藏文件和文件夹还是没有显示 然后我重启电脑,杀毒…...
centos服务器系统下安装python3并与自带的python2
centos服务器系统下安装python3并与自带的python2 在centos中,自带有python2,因此需要经常安装python3。但是这里有一个坑,就是centos的yum是用python2写的,如果正常编译安装python3,那么yum就会直接挂了。为了方便以…...
(二十)大数据实战——Flume数据采集的基本案例实战
前言 本节内容我们主要介绍几个Flume数据采集的基本案例,包括监控端口数据、实时监控单个追加文件、实时监控目录下多个新文件、实时监控目录下的多个追加文件等案例。完成flume数据监控的基本使用。 正文 监控端口数据 ①需求说明 - 使用 Flume 监听一个端口&am…...
AutoCAD图如何保存为Word
AutoCAD图如何保存为Word 引言AutoCAD图保存为Word文件步骤: 引言 不知道大家有没有是否遇到需要将AutoCAD图保存到Word中。有些小伙伴可能直接截图插入Word中,这种方法简单,但对于有高清图片需求的小伙伴就不适用了。接下来我就为大家介绍一…...
Java线程 - 详解(2)
一,线程安全问题 有些代码在单个线程的环境下运行,完全正确,但是同样的代码,让多个线程去执行,此时就可能出现BUG,这就是所谓的 "线程安全问题"。举一个例子: public class Demo {s…...
事务特性 - 达梦数据库
达梦数据库事务特性 1 事务特性1.1 原子性1.2 一致性1.3 隔离性1.4 持久性 1 事务特性 事务必须具备什么属性才是一个有效的事务呢?一个逻辑工作单元必须表现出四种属性,即原子性、一致性、隔离性和持久性,这样才能成为一个有效的事务。DM 数…...
axios 使用FormData格式发送GET请求
如果你需要使用,FormData格式,发送GET请求 将参数拼接到 FormData对象 中,使用 URLSearchParams 将FormData对象转换为查询参数字符串,并将其拼接到URL中,这样就能以FormData格式发送GET请求给服务器 注意࿱…...
CS144(2023 Spring)Lab 1: stitching substrings into a byte stream
文章目录 前言其他笔记相关链接 1. Getting started2. Putting substrings in sequence2.1 需求分析2.2 注意事项2.3 代码实现 3. 测试与优化 前言 这一个Lab主要是实现一个TCP receiver的字符串接收重组部分。 其他笔记 Lab 0: networking warmup Lab 1: stitching substri…...
【PHP】常用的PHP内置函数
1、PHP内置函数非常丰富,用于执行各种任务。以下是一些常用的PHP内置函数: 字符串操作函数: strlen(): 返回字符串的长度。 strpos(): 查找字符串中的某个子串第一次出现的位置。 substr(): 返回字符串的子串。 str_replace(): 替换字符串中的…...
css自学框架之消息弹框
首先我们还是看看消息弹框效果: 主要实现代码分为三部分 一、CSS部分,这部分主要是定义样式,也就是我们看到的外表,主要代码: /* - 弹窗 */notice{top: 0;left: 0;right: 0;z-index: 10;padding: 1em;position: fix…...
42、Flink 的table api与sql之Hive Catalog
Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…...
PAT 1145 Hashing - Average Search Time
个人学习记录,代码难免不尽人意。 The task of this problem is simple: insert a sequence of distinct positive integers into a hash table first. Then try to find another sequence of integer keys from the table and output the average search time (the…...
C++调用Python Win10 Miniconda虚拟环境配置
目录 前言1. Win10 安装 Miniconda2. 创建虚拟环境3. 配置C调用python环境4. C调用Python带参函数5.遇到的问题6. 总结 前言 本文记录了Win10 系统下Qt 应用程序调用Python时配置Miniconda虚拟环境的过程及遇到的问题,通过配置Python虚拟环境,简化了Qt应…...
从0到1学会Git(第一部分):Git的下载和初始化配置
1.Git是什么: 首先我们看一下百度百科的介绍:Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 …...
【记录】手机QQ和电脑QQ里的emoji种类有什么差异?
版本 手机 QQ:V 8.9.76.12115 电脑 QQ:QQ9.7.15(29157) 偶然发现,有一种emoji手机上怎么找都找不到,一开始以为自己失忆了,后来发现这种emoji只在电脑上有。 接下来简单说一下找emoji差异的方式…...
blender界面认识01
学习视频 【基础篇】1.2 让手听话_哔哩哔哩_bilibili 目录 控制视角 控制物体 选择对象1 小结 控制视角 长按鼠标中键-----视角旋转 shift鼠标中键-----视角平移 滚动鼠标中键-----视角缩放 也可以通过界面的快捷工具实现 这个视角旋转有一点像catia中罗盘,…...
TCP数据报结构分析(面试重点)
在传输层中有UDP和TCP两个重要的协议,下面将针对TCP数据报的结构进行分析 关于UDP数据报的结构分析推荐看UDP数据报结构分析(面试重点) TCP结构图示 TCP报头结构的分析 一.16位源端口号 源端口表示发送数据时,发送方的端口号&am…...
Windows驱动存储深度管理:DriverStore Explorer全方位解决方案
Windows驱动存储深度管理:DriverStore Explorer全方位解决方案 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 一、驱动管理困境与突破路径 1.1 系统驱动管理的核心挑战 W…...
VideoAgentTrek-ScreenFilter开发环境配置:从零开始搭建Java调用示例
VideoAgentTrek-ScreenFilter开发环境配置:从零开始搭建Java调用示例 如果你是一名Java开发者,最近听说了VideoAgentTrek-ScreenFilter这个视频处理服务,想在自己的项目里试试看,但不知道从哪儿下手,那这篇文章就是为…...
Fish Speech 1.5快速上手:一键部署,轻松实现中英日韩13种语言语音合成
Fish Speech 1.5快速上手:一键部署,轻松实现中英日韩13种语言语音合成 1. 为什么选择Fish Speech 1.5? 上周我帮一个跨国团队部署语音合成系统,他们需要在24小时内完成中英日韩四语的商品介绍语音生成。传统方案需要部署多个语音…...
SAMD21 Turbo PWM:硬件级高精度同步PWM驱动详解
1. SAMD21 Turbo PWM 库深度解析:面向嵌入式工程师的高性能PWM驱动实践指南SAMD21 Turbo PWM 是一款专为基于 ATSAMD21G 微控制器(如 Arduino Nano 33 IoT、Adafruit Itsy Bitsy M0、Trinket M0 等)设计的底层硬件加速 PWM 库。它绕过 Arduin…...
FocalNet目标检测、实例分割模型环境配置FocalNet目标检测、实例分割模型数据集调整FocalNet目标检测、实例分割模型代跑训练FocalNet目标检测、实例分割改进创新Focal
FocalNet目标检测、实例分割模型环境配置 FocalNet目标检测、实例分割模型数据集调整 FocalNet目标检测、实例分割模型代跑训练 FocalNet目标检测、实例分割改进创新 FocalNet环境配置:Windows、Ubuntu、Centos、Macos等系统环境,如果电脑拥有显卡&#…...
LibEdificio嵌入式教学库:硬件映射驱动与楼宇灯光实验平台
1. 项目概述LibEdificio 是一款面向嵌入式教育平台的专用控制库,专为“Building Lights 教学系统”(楼宇灯光教学实验平台)设计。该系统并非通用工业楼宇自控设备,而是一套结构化、模块化、可编程的硬件教学套件,广泛应…...
OpenClaw怎么部署?2026年1分钟部署OpenClaw、配置百炼APIKey、集成Skill保姆级图文教程
OpenClaw怎么部署?2026年1分钟部署OpenClaw、配置百炼APIKey、集成Skill保姆级图文教程。OpenClaw(原Clawdbot)作为2026年主流的AI自动化助理平台,可通过阿里云轻量服务器实现724小时稳定运行,并快速接入钉钉ÿ…...
深入解析pysim中的eUICC ISD-R命令:从基础操作到高级应用
1. eUICC ISD-R命令基础入门 第一次接触eUICC ISD-R命令时,我完全被那些专业术语搞晕了。经过几个项目的实战,我发现这些命令其实就像智能手机上的应用商店操作——只不过管理的是SIM卡上的应用。eUICC(嵌入式通用集成电路卡)是现…...
MentorBit红外驱动库:裸机与RTOS下的精准时序控制
1. MentorBit-DetectorIR 库概述MentorBit-DetectorIR 是一款专为 MentorBit 红外发射/接收模块设计的嵌入式底层驱动库,其核心定位并非通用红外协议栈(如 NEC、RC5 解码),而是面向硬件验证、模块级功能测试与快速原型开发的轻量级…...
2026届必备的六大AI论文助手实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 此刻,针对学术写作情形的AI辅助网站已然构建起多元化生态,这类平台一…...
