MyBatis-Plus快速入门:从安装到第一个Demo

news/2025/2/6 11:06:23/文章来源:https://www.cnblogs.com/ccdm/p/18523579

一、前言

在现代 Java 应用程序中,数据访问层的效率与简洁性至关重要。MyBatis-Plus 作为 MyBatis 的增强工具,旨在简化常见的数据操作,提升开发效率。它提供了丰富的功能,如自动生成 SQL、条件构造器和简单易用的 CRUD 操作,极大地减少了代码的冗余。

本文将带你从零开始,快速入门 MyBatis-Plus。我们将首先介绍如何安装和配置 MyBatis-Plus,然后通过一个简单的示例演示如何使用它进行数据操作。无论你是 MyBatis 的新手还是希望提升开发效率的老手,本文都将为你提供清晰的指导和实用的技巧。

7d4e9e4c-d9f6-4ab1-8da2-e34f6d79de61

二、快速入门

以下是一个 MyBatis-Plus 入门 Demo,展示如何使用 MyBatis-Plus 进行基本的数据库操作。

2.1 数据库准备

在mysql,创建一张用户表,并插入数据

DDL语句

DROP TABLE IF EXISTS `user`;CREATE TABLE `user`
(id BIGINT NOT NULL COMMENT '主键ID',name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',age INT NULL DEFAULT NULL COMMENT '年龄',email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (id)
);

DML语句

DELETE FROM `user`;INSERT INTO `user` (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

这里使用Dbeaver数据库客户端操作

image

image

2.2 创建SpringBoot工程

使用IDEA创建

image

image

image

image

2.3 添加依赖

在pom文件中,添加如下依赖

		<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.9</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>[8.0.0,9.0.0)</version> <!-- 选择 8.0.x 的最新版本 --></dependency>

image

备注:springboot版本建议降低,后续启动可能报错

image

2.4 application.yml​配置

在项目中,一般使用yml​配置,先把工程中application.properties文件改为application.yml

image

image

spring:datasource:url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTCdriver-class-name: com.mysql.cj.jdbc.Driverusername: password: mybatis-plus:mapper-locations: classpath:mapper/**/*.xml

2.5 创建实体类

在创建之前,建议先创建几个包,分别存放

image

image

@Data
public class User {private Long id;private String name;private Integer age;private String email;
}

2.6 创建 Mapper 接口

创建一个 Mapper 接口 UserMapper.java​:

image

import com.baomidou.mybatisplus.core.mapper.BaseMapper;public interface UserMapper extends BaseMapper<User> {
}

2.7 创建 Service 类

创建一个服务类 UserService.java​:

image

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;@Service
public class UserService extends ServiceImpl<UserMapper, User> {
}

2.8 创建 Controller 类

创建一个控制器 UserController.java​:

image

@RestController
@RequestMapping("/user")
public class UserController {@Resourceprivate UserService userService;/*** 获取全部用户** @return List<User>*/@PostMapping("/list")public List<User> getAllUsers() {return userService.list();}/*** 根据用户id查询用户** @param id 用户id* @return User*/@GetMapping("/get_by_id")public User getUserById(@RequestParam("id") Long id) {return userService.getById(id);}}

2.9 配置启动类扫描

在 Spring Boot 启动类中添加 @MapperScan​ 注解,扫描 Mapper 文件夹:

image

2.10 启动服务

image

2.11 测试

使用postman进行接口测试

  1. 查询全部用户

image

  1. 根据id查询用户

image

通过本篇文章,我们已经从安装到配置,再到实现第一个 Demo,全面了解了 MyBatis-Plus 的基本用法。MyBatis-Plus 的简化操作和强大功能,可以显著提高开发效率,减少样板代码,使我们能更专注于业务逻辑的实现。

随着对 MyBatis-Plus 的深入了解,后续会探索更多高级特性,如分页查询、逻辑删除和性能优化等,以进一步提升应用的灵活性和响应速度。

关注公众号—“技海拾贝”,持续分享干货

qrcode_for_gh_3d67c080fd7b_344

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/826221.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker bulid tag push到自己的docker hub 仓库

-t(或 --tag)参数:用于给构建的镜像指定标签(tag)。标签的格式通常是 [仓库名/][用户名/]镜像名:版本号 -f(或 --file)参数: 指定构建镜像所使用的 Dockerfile 的路径。默认情况下,docker build 会在当前目录下查找名为 Dockerfile 的文件,但通过这个参数可以指定其他…

《使用Gin框架构建分布式应用》阅读笔记:p393-p437

《用Gin框架构建分布式应用》学习第17天,p393-p437总结,总45页。 一、技术总结 1.Prometheus Prometheus放在代码里面使用,还是第一次见。在本人实际的工作中未看到这种用法。 2.Grafana Grafana用于被监控数据的可视化。 3.Telegraf Telegraf用于数据采集。在本人的实际工作…

2024.11.3 鲜花

浅谈 RMQ浅谈 RMQ비밀 인형극 II어느 한적한 마을 골목 안의 허름한 건물在某个僻静村庄胡同的破旧建筑里문을 열고 들어가면 작은 극장이 있죠开门进去便会见到一个小剧场솜씨 좋은 인형사가 연극을 마치고 떠나면一个手艺不错的人偶师演完戏离开的时候인형들은 극장 창고 안에…

2024-2025-1 20241301 《计算机基础与程序设计》第六周学习总结

|这个作业属于哪个课程|<2024-2025-1-计算机基础与程序设计(https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)>| |这个作业要求在哪里|<2024-2025-1计算机基础与程序设计第六周作业](https://www.cnblogs.com/rocedu/p/9577842.html#WEEK06)>| |这个作业的…

【UWP】让 UWP 自己托管自己 —— Windows App SDK 篇

众所周知,UWP 使用的窗口模型是 CoreWindow,但是 UWP 本身只是一个应用模型,所以完全可以创建 win32 窗口,那么我们可以不可以创建一个 win32 窗口,然后像 XAML 岛 (XAML Islands) 一样把 XAML 托管上去呢?本篇将讲述如何利用 WAS (Windows App SDK,俗称 WinUI3) 在 UWP…

【算法】记忆化搜索

[!TIP] 一种剪枝算法,优化运算效率,减少冗余计算基本内容入门例子 [P1028 [NOIP2001 普及组] 数的计算]([P1028 NOIP2001 普及组] 数的计算 - 洛谷 | 计算机科学教育新生态)题目要求:输入n,输出一共可以构造多少个数列,要求数列的第 i不能超过第i-1个数的一半 示例:输入6…

『模拟赛』NOIP2024模拟1

『模拟赛记录』NOIP2024模拟1Rank 有点可惜,A. 玩游戏 绝妙贪心题。感觉这种能产生很多假做法且都可 hack 的贪心都是好题。 赛时不知道为什么犯唐没交一开始的暴力贪心。 考虑双指针,设左右指针分别为 \(l,r\)。主要思路是实时维护当前两个指针向两边最近的一个区间和不为正…

2024-2025-1 20241312《计算机基础与程序设计》第6周学习总结

这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第六周作业)这个作业的目标 Polya如何解决问题 简单类型与组合类型 复合数据结构 查找与排序算法 算法复杂度 递…

工程师和科学家的高等数学及python实例:2三角函数 II

2 三角函数 II 学完本章内容后,你应该能够 ● 讨论反三角函数的图形 ● 讨论倒数函数的图形 ● 评估正弦、余弦和正切函数的变换 2.1 引言 本章将继续讨论三角函数,研究上一章中涉及的三个三角函数的倒数和反三角函数。本章还将讨论这些函数的变换。 2.2 三角函数的倒数 正弦…

搭建主从DNS服务器实现域名正逆向解析

1.前置工作:关闭防火墙及selinux 2.安装软件:yum install -y bind 3.本文仅搭建本地DNS实现逆向域名解析 1)建议复制逆向解析模板再进行修改 模板路径:/etc/named.rfc1912.zones 2)进入主配置文件并添加逆向配置文件 vim /etc/named.conf 注意:区域名称中IP地址反向书写,…

2024-2025-1 20241407《计算机基础与程序设计》第六周学习总结

这个作业属于哪个课程 [2024-2025-1计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)这个作业要求在哪里 2024-2025-1计算机基础与程序设计第六周作业这个作业的目标 学习Polya如何解决问题,简单类型与组合类型,复合数据结构,查找与排序算法…

Me-and-My-Girlfriend-1靶机渗透 (Vulnhub内网渗透)

一、Me-and-My-Girlfriend-1: 1、渗透目标: Description: This VM tells us that there are a couple of lovers namely Alice and Bob, where the couple was originally very romantic, but since Alice worked at a private company, "Ceban Corp", something …