MyBatis-Plus快速开始[MyBatis-Plus系列] - 第482篇

news2024/9/24 21:29:10

悟纤:师傅,MyBatis-Plus被你介绍的这么神乎其乎,咱们还是来的点实际的吧。

师傅:那真是必须的,学习技术常用的一种方法,就是实践。

悟纤:贱贱更健康。

师傅:这…

师傅:你这脑瓜天天装的是什么。

悟纤:┭┮﹏┭┮ 呜呜, 我这是给生活增加点调味剂。

师傅:准备好上车了嘛

悟纤:奥利给,干就对了。

导读

这一节将通过一个简单的 Demo 来阐述 MyBatis-Plus 的强大功能,在此之前,我们假设您已经:

l 拥有 Java 开发环境以及相应 IDE

l 熟悉 Spring Boot

l 熟悉 Maven

👇🏻👇🏻👇🏻EasyPoi实战系列

01.《MyBatis-Plus是什么以及特性[MyBatis-Plus系列]》

一、创建表结构

现有一张 User 表,其表结构如下:

id

name

age

email

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

其对应的数据库 Schema 脚本如下:

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

其对应的数据库 Data 脚本如下:

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');

二、快速入门

如果从零开始用 MyBatis-Plus 来实现该表的增删改查我们需要做什么呢?

2.1 初始化工程

创建一个空的 Spring Boot 工程(工程将以 mysql作为默认数据库进行演示)

2.2 添加依赖

引入 Spring Boot Starter 父工程:

<parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>2.7.14</version>    <relativePath/> <!-- lookup parent from repository --></parent>

引入spring-boot-starter-web、mybatis-plus-boot-starter、mysql等依赖:

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId></dependency><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-test</artifactId>    <scope>test</scope></dependency><dependency>    <groupId>org.projectlombok</groupId>    <artifactId>lombok</artifactId>    <version>1.18.28</version>    <scope>provided</scope></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>8.0.29</version></dependency>

2.3配置

在 application.yml(properties) 配置文件中添加数据库的相关配置:

spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/mybatis-plus-demospring.datasource.username = rootspring.datasource.password = root

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

package com.kfit;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@MapperScan("com.kfit.*.mapper")public class MybatisPlusDemoApplication {    public static void main(String[] args) {        SpringApplication.run(MybatisPlusDemoApplication.class, args);    }}

2.4编码

编写实体类 User.java(此处使用了 Lombok 简化代码)

package com.kfit.user.model;import lombok.Data;@Datapublic class User {    private Long id;    private String name;    private Integer age;    private String email;}

编写 Mapper 包下的 UserMapper接口

public interface UserMapper extends BaseMapper<User> {}

2.5开始使用

添加测试类,进行功能测试:

@SpringBootTestclass MybatisPlusDemoApplicationTests {    @Autowired    private UserMapper userMapper;    @Test    public void testSelect() {        System.out.println(("----- selectAll method test ------"));        List<User> userList = userMapper.selectList(null);        userList.forEach(System.out::println);    }}

控制台输出:

三、小结

通过以上几个简单的步骤,我们就实现了 User 表的 CRUD 功能,甚至连 XML 文件都不用编写!

从以上步骤中,我们可以看到集成MyBatis-Plus非常的简单,只需要引入 starter 工程,并配置 mapper 扫描路径即可。

但 MyBatis-Plus 的强大远不止这些功能,想要详细了解 MyBatis-Plus 的强大功能?那就继续往下看吧!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

”源启,征程“新员工入职考试题及答案

中电金信&#xff0c;新员工入职必修课《源启&#xff0c;征程》考试题及答案。 源启&#xff0c;征程 单选题&#xff0c;每题仅有一个正确的选项.&#xff08;本题型共有5题&#xff09; 1.“源启”诞生的背景是什么&#xff1f;&#xff08;10分&#xff09; A、国际关系…

macbook 加载模型报错:failed to load model

环境&#xff1a;macbook m1 conda python3.9 加载模型链接为&#xff1a;ggml-model-q4_0.bin 加载方式&#xff1a; from langchain.embeddings import LlamaCppEmbeddings embeddings LlamaCppEmbeddings(model_pathllama_path) 在linux上加载是正常的&#xff0c;但是…

互联网医院|线上医疗提升就医效率

互联网医院是一款在线医疗服务平台&#xff0c;旨在解决患者就医难、看病贵的问题。通过该应用&#xff0c;用户可以在线咨询医生、挂号就医、获取医疗信息和健康管理等服务&#xff0c;随着这几年人们对于线上医疗的认可&#xff0c;互联网医院系统功能也越来越完善&#xff0…

(二)Linux中安装docker(一篇就够)

一、安装docker &#xff08;1&#xff09;卸载系统之前的 docker 复制以下下命令执行&#xff1a; sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine执行结果&…

使用vscode编写插件-php语言

https://blog.csdn.net/qq_45701130/article/details/125206645 一、环境搭建 1、安装 Visual Studio Code 2、安装 Node.js 3、安装 Git 4、安装生产插件代码的工具&#xff1a;npm install -g yo generator-code 二、创建工程 yo code 选择项解释&#xff1a; 选择编写扩…

Docker数据管理、网络通信和镜像创建

一、Docker 数据管理1、数据卷2、数据卷容器3、端口映射4、容器互联 二、Docker 镜像的创建1、基于现有的镜像创建1.1 首先启动一个镜像&#xff0c;在容器里做修改1.2 然后将修改后的容器提交为新的镜像&#xff0c;需要使用该容器的 ID 号创建新镜像 2、基于本地的模版创建3、…

RunnerGo中WebSocket、Dubbo、TCP/IP三种协议接口测试详解

大家好&#xff0c;RunnerGo作为一款一站式测试平台不断为用户提供更好的使用体验&#xff0c;最近得知RunnerGo新增对&#xff0c;WebSocket、Dubbo、TCP/IP&#xff0c;三种协议API的测试支持&#xff0c;本篇文章跟大家分享一下使用方法。 WebSocket协议 WebSocket 是一种…

【LeetCode】538.把二叉搜索树转换为累加树

题目 给出二叉 搜索 树的根节点&#xff0c;该树的节点值各不相同&#xff0c;请你将其转换为累加树&#xff08;Greater Sum Tree&#xff09;&#xff0c;使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下&#xff0c;二叉搜索树满足下列约束条件…

NAS个人云存储 - 手把手教你搭建Nextcloud个人云盘并实现公网远程访问

文章目录 摘要1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 摘要 Nextcloud,它是ownCloud的一个分支,是一个文件共享服…

VSCode好用的插件

文章目录 前言1.Snippet Creator & easy snippet&#xff08;自定义代码&#xff09;2.Indent Rainbow&#xff08;代码缩进&#xff09;3.Chinese (Simplified) Language Pack&#xff08;中文包&#xff09;4.Path Intellisense&#xff08;路径提示&#xff09;5.Beauti…

GitKraken 详细图文教程

前言 写这篇文章的原因是组内的产品和美术同学&#xff0c;开始参与到git工作流中&#xff0c;但是网上又没有找到一个比较详细的使用教程&#xff0c;所以干脆就自己写了一个[doge]。文章的内容比较基础&#xff0c;介绍了Git内的一些基础概念和基本操作&#xff0c;适合零基…

游戏反外挂方案解析

近年来&#xff0c;游戏市场高速发展&#xff0c;随之而来的还有图谋利益的游戏黑产。在利益吸引下&#xff0c;游戏黑产扩张迅猛&#xff0c;已发展成具有庞大规模的产业链&#xff0c;市面上游戏受其侵扰的案例屡见不鲜。 据《FairGuard游戏安全2022年度报告》数据统计&…

明星翻包口播介绍产品视频的创意与实践

在当前社交媒体充斥着各种内容的时代&#xff0c;创意而有趣的内容形式成为品牌吸引受众目光的关键。明星翻包口播介绍产品视频&#xff0c;作为一种新颖的内容形式&#xff0c;不仅满足了观众对明星生活的好奇心&#xff0c;还将产品介绍融入其中&#xff0c;为品牌推广带来全…

Spring练习---28 (用户表和角色表分析,角色列表展示,角色层和Dao层的设置,页面展示操作)

84、下面进入我们的业务层面&#xff0c;进入我们的业务层面我们先分析一个东西&#xff0c;我们要分析用户和角色的关系&#xff0c;因为我们只有在分析完用户和角色之间的关系后&#xff0c;我们才知道表的关系&#xff0c;实体的关系 85、现在我们先画一张表&#xff0c;分析…

传统节日民俗文化及民间故事推广系统 微信小程序

傣族节日及民间故事推广小程序是在的数据存储主要通过MySQL。用户在使用应用时产生的数据通过java语言传递给数据库。通过此方式促进傣族节日及民间故事推广信息流动和数据传输效率&#xff0c;提供一个内容丰富、功能多样、易于操作的平台。述了数据库的设计&#xff0c;系统的…

Application of Acrel Earth Leakage Relay in Intell

安科瑞 华楠 Abstract: the necessity of applying residual current relay in intelligent building is analyzed, the main functions, working principle, classification situation of ASJ residual current relay are introduced, and the principles and precautions in…

Everything+cpolar搭建在线资料库,实现随时随地访问

Everythingcpolar搭建在线资料库&#xff0c;实现随时随地访问 文章目录 Everythingcpolar搭建在线资料库&#xff0c;实现随时随地访问前言1.软件安装完成后&#xff0c;打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 &a…

Cesium 模型视角锁定(entity)

需求&#xff1a; 需要将视角锁定在以模型为中心&#xff0c;无论怎么旋转和缩放&#xff0c;都是以模型为中心点的。 方法&#xff1a; //绑定方式 viewer.trackedEntity entity; //解绑方式 viewer.trackedEntity undefined;例子 var model_entity viewer.entities.add…

6个主流的工业3D管道设计软件

3D 管道设计软件是大多数行业工程工作的主要部分&#xff0c;例如&#xff1a; 电力、石油和天然气、石化、炼油厂、纸浆和造纸、化学品和加工业。 全球各工程公司使用了近 50 种工厂或管道设计软件。 每个软件都有优点和缺点&#xff0c;包括价格点。 EPC 和业主部门当前的趋势…

STM32 F103C8T6学习笔记11:RTC实时时钟—OLED手表日历

之前在 学习笔记10文章 做了一个简易的&#xff0c;使用定时器计时的简单时钟&#xff0c;现在使用RTC实时时钟同步代替定时器来实现一下OLED手表日历&#xff0c;接着上个实验文章进行完善~~ 文章提供源码、测试工程下载、测试效果图。 目录 RTC实时时钟&#xff1a; 简介&…