SpringBoot集成MyBatisPlus+MySQL(超详细)
前言
查看此文章前强烈建议先看这篇文章:Java江湖路 | 专栏目录
该文章纪录的是SpringBoot快速集成MyBatis Plus,每一步都有记录,争取每一位看该文章的小伙伴都能操作成功。达到自己想要的效果~
文章目录
- 前言
- 1、什么是MyBatisPlus
- 2、SpringBoor整合MyBatisPlus
- 2.1、配置
- 2.2、使用MyBatisPlus
- 2.3、效果
- 总结
1、什么是MyBatisPlus
MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
MybatisPlus可以节省大量时间,所有的CRUD代码都可以自动化完成
特性
- 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
- 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
- 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
- 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
- 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
- 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
- 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
- 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
- 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
- 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
- 内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
- 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作
MyBatisPlus官方网站:https://baomidou.com/

2、SpringBoor整合MyBatisPlus
2.1、配置
1、先准备好数据库环境
CREATE DATABASE mybatisplus;USE mybatisplus;CREATE TABLE eric_user(
`id` INT AUTO_INCREMENT,
`name` VARCHAR(255) COMMENT '名称',
PRIMARY KEY (`id`)
);INNER INTO eric_user(`name`) VALUES('Eric'),('blue');INSERT INTO `eric_user`(`id`,`name`) VALUES
(1,'Eric'),
(2,'Jack'),
(3,'Lucy');
2、创建一个SpringBoot项目

3、引入MyBatisPlus相关依赖(因为要操作数据库,所以这里也引入了MySQL依赖)
<!--mybatis-plus-->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.3.1</version>
</dependency><!--mysql-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>
</dependency><!--lombok用来简化实体类-->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency>
4、修改配置文件
server:port: 8080spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatisplus?serverTimezone=GMT%2B8username: rootpassword: root#开启日志
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
2.2、使用MyBatisPlus
1、创建一个实体类
package com.eric.springbootmybatisplus.entity;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;/*** @author Eric* @date 2023-08-01 15:38*/
@Data
@TableName(value = "eric_user")
public class EricUser {@TableId(value = "id", type = IdType.AUTO)private Integer id;@TableField(value = "name")private String name;}
2、Mapper层
package com.eric.springbootmybatisplus.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.eric.springbootmybatisplus.entity.EricUser;
import org.apache.ibatis.annotations.Mapper;/*** @author Eric* @date 2023-08-01 15:39*/
@Mapper
public interface EricUserMapper extends BaseMapper<EricUser> {
}
3、service层
package com.eric.springbootmybatisplus.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.eric.springbootmybatisplus.entity.EricUser;/*** @author Eric* @date 2023-08-01 15:40*/
public interface EricUserService extends IService<EricUser> {
}
impl
package com.eric.springbootmybatisplus.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.eric.springbootmybatisplus.entity.EricUser;
import com.eric.springbootmybatisplus.mapper.EricUserMapper;
import com.eric.springbootmybatisplus.service.EricUserService;
import org.springframework.stereotype.Service;/*** @author Eric* @date 2023-08-01 15:42*/
@Service
public class EricUserServiceImpl extends ServiceImpl<EricUserMapper, EricUser> implements EricUserService {
}
4、controller
package com.eric.springbootmybatisplus.controller;import com.eric.springbootmybatisplus.entity.EricUser;
import com.eric.springbootmybatisplus.service.EricUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;/*** @author Eric* @date 2023-08-01 15:43*/
@RestController
@RequestMapping("/eric")
public class EricUserController {@Autowiredprivate EricUserService userService;@GetMapping("")public List<EricUser> getEricUserList(){List<EricUser> list = userService.list();return list;}
}
2.3、效果
此时运行项目,访问 IP+端口/接口地址
例如:http://127.0.0.1:8080/eric
结果如下

总结
怎么样,是不是特别的方便和简单~
相关文章:
SpringBoot集成MyBatisPlus+MySQL(超详细)
前言 查看此文章前强烈建议先看这篇文章:Java江湖路 | 专栏目录 该文章纪录的是SpringBoot快速集成MyBatis Plus,每一步都有记录,争取每一位看该文章的小伙伴都能操作成功。达到自己想要的效果~ 文章目录 前言1、什么是MyBatisPlus2、Spring…...
一边是计算机就业哀鸿遍野,一边是高考生疯狂涌向计算机专业
在张雪峰推荐的几大专业里,计算机专业是其中之一。近几年,计算机专业报考热度不减,但就业前景却令人堪忧,互联网裁员接二连三,许多码农找不到工作。 一位网友感叹:一边是计算机就业哀鸿遍野,一…...
解决外部主机无法访问Docker容器的方法
使用Docker启动了一个tomcat容器,并做了端口映射,但是外部主机仍然无法访问。 编辑centos上的配置文件 vi /etc/sysctl.conf net.ipv4.ip_forward1 systemctl restart network保存以后即可生效,这个配置是开启linux的ip数据包转发功能&#…...
IDEA中修改类头的文档注释信息
IDEA中修改类头的文档注释信息 选择File--Settings--Editor--File and Code Templates--Includes,可以把文档注释写成这种的 /**author: Arbicoralcreate: ${YEAR}-${MONTH}-${DAY} ${TIME}Description: */这样回看就可以很清楚的看到自己创建脚本的时间ÿ…...
建模教程:如何利用3ds Max 和 After Effects 实现多通道渲染和后期合成
推荐: NSDT场景编辑器 助你快速搭建可二次开发的3D应用场景 1. 创建基本场景 步骤 1 打开 3ds Max。 打开 3ds Max。 步骤 2 我做了一个简单的场景。我放了三个 彼此之间有一定距离的物体。 制作对象 步骤 3 按 Ctrl-C 键 在透视视图中创建摄影机。 创建相机 …...
JPA之Hibernate
JPA 定义:是 JavaEE 中一组用于持久化数据的 API,它提供了一种标准的 ORM 规范,用于 Java 对象映射到数据库中。 JPA 的开发是为了简化企业级应用程序的开发,降低应用程序与数据库之间的耦合度,并提高应用程序的可维护…...
leetcode(力扣)剑指 Offer 16. 数值的整数次方 (快速幂)
文章目录 题目描述思路分析完整代码 题目描述 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。 示例 1: 输入:x 2.00000, n 10 输出:10…...
git命令分类合集
配置 git config --global user.name <name>:设置全局用户名 git config --global user.email <email>:设置全局用户邮箱 git config --global core.editor <editor>:设置全局文本编辑器创建与克隆仓库 git init…...
微信小程序打开地图的方法
1、打开内置地图 wx.openLocation({latitude: 31.230416, // 上海的纬度longitude: 121.473701, // 上海的经度name: 上海市, // 地点名称address: 中国上海市黄浦区人民广场, // 地址的详细说明scale: 18, // 缩放比例success: function(res) {console.log(打开地图成功);},f…...
快手头部主播合体,二驴祁天道直播首秀销售额破亿
2023年刚刚过半,直播江湖突然生变。 快手头部娱乐主播「二驴」与快手户外主播第一人「祁天道」宣布“合体”,两者加总的粉丝量接近1亿,又一个“超级网红IP”诞生。 ▲图源:二驴的、祁天道快手截图 从白手起家的草根,…...
Golang Devops项目开发(1)
1.1 GO语言基础 1 初识Go语言 1.1.1 开发环境搭建 参考文档:《Windows Go语言环境搭建》 1.2.1 Go语言特性-垃圾回收 a. 内存自动回收,再也不需要开发人员管理内存 b. 开发人员专注业务实现,降低了心智负担 c. 只需要new分配内存,…...
Django系列之DRF简单使用
基于ModelViewSets的简单使用 models.py from django.db import modelsclass AuthorDetail(models.Model):gender models.CharField(max_length8)birthday models.DateField()telephone models.BigIntegerField()addr models.CharField(max_length64)class Author(models…...
新闻标题文本分类任务
目录 知识回顾使用debug调试 知识回顾 预处理内容 文本主要进行清洗、分词/分字 ID替换(不希望计算机看到文字,而是ID),通过语料表来表示,根据频率高低来分配ID号 文本的ID映射到文本的一个特征向量,进行词嵌入(Embedding)&…...
自己实现MyBatis 底层机制--抽丝剥茧(上)
😀前言 本篇博文是学习过程中的笔记和对于MyBatis底层机制的分析思路,希望能够给您带来帮助😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到…...
Django后端执行成功或失败状态码
后端执行成功或失败以状态码的形式告诉前端,处理成功返回200系列状态码,执行前端then里面的代码;处理失败返回400/500系列状态码,执行catch里面的代码。 200 OK :服务器成功返回用户请求的数据 201 CREATED ÿ…...
Prometheus中的关键设计
1、标准先行,注重生态 Prometheus 最重要的规范就是指标命名方式,数据格式简单易读。比如,对于应用层面的监控,可以要求必须具备这几个信息。 指标名称 metric Prometheus 内置建立的规范就是叫 metric(即 __name__…...
Centos7 安装yum
1、检查主机名和网络并且配置/etc/hosts文件 查看主机名:hostname 查看ip :ifconfig vi /etc/hosts//添加把主机名和IP配置进去hosts文件192.18.56.111 orcale12c2、关闭防火墙 systemctl status firewalld.service//检查防火墙状态 暂时关闭防火墙,下…...
无涯教程-Lua - 简介
Lua是一种轻量语言,它的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快。它用ANSI C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。和许多“大而全”的语言不一样,网络通信…...
【第一阶段】kotlin语言引用数据类型
Java语言中有两种数据类型 第一种:基本数据类型 如int double等 第二种:引用数据类型。如String kotlin只有一种数据类型,看起来都是引用数据类型,实际上编译器会在Java字节码中,修改成基本类型 //Java语言中有两种数…...
BUU [网鼎杯 2020 朱雀组]phpweb
BUU [网鼎杯 2020 朱雀组]phpweb 众生皆懒狗。打开题目,只有一个报错,不知何从下手。 翻译一下报错,data()函数:,还是没有头绪,中国有句古话说的好“遇事不决抓个包” 抓个包果然有东西,仔细一看这不就分别是函数和参…...
电子电路中的“心脏”:电源
一、语言特性:Java 26 与模式匹配进化 1.1 Java 26 语言级别支持 IDEA 2026.1 EAP 最引人注目的变化之一,就是新增 Java 26 语言级别支持。这意味着开发者可以提前体验和测试即将在 JDK 26 中正式发布的语言特性。 其中最重要的变化是对 JEP 530 的全面支…...
如何永久保存微信聊天记录?这款免费工具让你真正拥有自己的数字记忆
如何永久保存微信聊天记录?这款免费工具让你真正拥有自己的数字记忆 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Tren…...
抗DDoS设备性能测试方法详解:专业仪表如何精准评估防护能力
摘要抗DDoS设备的防护效果如何,单靠厂商自测数据不可信,需要专业网络安全测试仪表进行第三方验证。本文系统梳理SYN Flood、UDP Flood、HTTP Flood、反射放大、慢速攻击等主流DDoS攻击的测试方法,结合运营商级集采测试标准,详解清…...
电商人必看!RMBG-2.0轻量抠图实战:证件照换背景+短视频素材一键生成
电商人必看!RMBG-2.0轻量抠图实战:证件照换背景短视频素材一键生成 还在为商品图片抠图发愁吗?每天处理几十张产品图,用PS一点点抠边缘,既费时间又费眼睛?或者需要给员工批量制作证件照,但换背…...
FRP内网穿透实战:5分钟搞定Linux服务器+Docker部署(含HTTPS配置)
FRP内网穿透实战:Linux服务器与Docker部署全指南 引言 在当今分布式开发和远程办公的浪潮中,内网穿透技术已成为开发者工具箱中不可或缺的一部分。想象一下这样的场景:你正在本地开发一个Web应用,需要让远方的同事实时预览效果&am…...
人工智能应用- 人工智能风险与伦理:01.数据安全
图: 人脸识别的滥用可能带来隐私风险,为不法分子提供可乘之机。特别是无处不在的摄像头,使我们的人脸生物信息可能暴露在风险中,被非法采集。人工智能的广泛应用离不开对数据的采集与分析,但也因此带来了数据安全方面的担忧。人工…...
手把手教你用AT32F403A实现串口空闲中断接收完整数据帧
深入解析AT32F403A串口空闲中断实现高效数据帧接收 在嵌入式系统开发中,串口通信是最基础也最常用的外设接口之一。面对实际应用中常见的不定长数据帧接收需求,传统轮询方式不仅效率低下,还容易丢失数据。而国产MCU雅特力AT32F403A提供的**串…...
H5扫码功能选型实战:微信JS-SDK vs 纯前端库,从公众号配置到代码封装的完整流程
H5扫码功能选型实战:微信JS-SDK vs 纯前端库的技术决策指南 当营销活动页需要实现"扫码领优惠券"功能时,技术团队突然陷入争论:是直接调用微信JS-SDK,还是采用纯前端扫码库?这个看似简单的技术决策ÿ…...
[iPhone USB网络共享]完全指南:从驱动故障到高效连接
[iPhone USB网络共享]完全指南:从驱动故障到高效连接 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_mirr…...
OEC-turbo变废为宝:从吃灰PCDN盒子到家庭服务器,Armbian/OpenWrt刷机实战记录
OEC-turbo硬件改造指南:从闲置PCDN设备到全能家庭服务器 手上闲置的OEC-turbo盒子除了吃灰还能做什么?这款搭载RK3568芯片的设备实际上是一块被低估的硬件宝藏。相比市面上热门的斐讯N1等矿渣设备,OEC-turbo在处理器性能、内存配置和扩展性方…...
