Spring Boot集成MyBatis Plus

news2024/11/26 21:18:10

文章目录

  • 一、前言
  • 二、步骤
    • 2.1、步骤 1:创建 Spring Boot 项目
    • 2.2、添加依赖
      • 2.2.1、基本的Spring和Spring MVC功能
      • 2.2.2、MySQL驱动依赖
      • 2.2.3、 MyBatis Plus 的依赖
    • 2.3、配置数据库连接
    • 2.4、创建实体类
    • 2.5、创建 Mapper 接口
    • 2.6、编写 Service 层
    • 2.7、编写 Controller 层
  • 三、测试结果
    • 3.1、增
    • 3.2、删
    • 3.3、改
    • 3.4、查
  • 四、总结

一、前言

在现代软件开发中,构建高效、可维护的项目是至关重要的。Spring Boot 是一个流行的框架,它简化了Java应用程序的开发过程。而 MyBatis Plus 则是一个强大的持久层框架,通过简化数据库操作,提升了开发效率。本文将介绍如何使用 Spring Boot 结合 MyBatis Plus 构建高效的项目,附带代码实现。

二、步骤

2.1、步骤 1:创建 Spring Boot 项目

首先,我们需要创建一个 Spring Boot 项目。可以使用 Spring Initializr(https://start.spring.io/)来快速生成一个基础的 Spring Boot 项目。在项目中,我们将会使用到 Spring Boot 的自动配置特性,简化项目的搭建过程。

2.2、添加依赖

2.2.1、基本的Spring和Spring MVC功能

<!--   spring + spring mvc一套     -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2.2.2、MySQL驱动依赖

<!--  【数据库】mysql driver  -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.29</version>
</dependency>

2.2.3、 MyBatis Plus 的依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3.2</version>
</dependency>

2.3、配置数据库连接

application.properties(或 application.yml)文件中,配置数据库连接信息,例如:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

2.4、创建实体类

创建一个实体类,例如 User,并使用注解标记数据库表名和字段:

@Data
@TableName(value = "user")
public class User {
    @TableId("id")
    private Long id;
    @TableField("user_name")
    private String userName;
}

2.5、创建 Mapper 接口

创建一个继承自 MyBatis Plus 的 BaseMapper 接口的 Mapper 接口,例如 UserMapper

public interface UserMapper extends BaseMapper<User> {
    // 可以在这里添加自定义的查询方法
}

2.6、编写 Service 层

创建一个 Service 层,实现业务逻辑。在这个例子中,我们不需要实现太多业务逻辑,所以我们只需注入 UserMapper,并调用其方法即可。

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    
    public List<User> getAllUsers() {
        return userMapper.selectList(null);
    }
    
    // 可以根据业务需求添加更多方法
}

2.7、编写 Controller 层

创建一个 Controller 层来处理 HTTP 请求,并调用 Service 层来获取数据。例如:

@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;
    
    @GetMapping
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }
    
    // 可以添加更多的请求处理方法
}

三、测试结果

3.1、增

通过调用添加用户的接口,可以看到结果,数据库中增加了一个username为wmj的数据。
在这里插入图片描述

3.2、删

通过调用删除用户的接口,可以看到结果,数据库中删除了一个id为1696146652390440961的数据
在这里插入图片描述

3.3、改

测试修改效果,我们需再把user_name为wmj的数据添加回来,然后将wmj修改为mmm;
在这里插入图片描述

3.4、查

测试查询效果,我们在库中多增加几条数据;
在这里插入图片描述

四、总结

通过结合 Spring Boot 和 MyBatis Plus,我们可以快速构建一个高效的项目。Spring Boot 的自动配置和 MyBatis Plus 的便利特性使得数据库操作变得简单,同时提高了开发效率。在这篇博客中,我们简要介绍了如何创建 Spring Boot 项目,集成 MyBatis Plus,以及如何编写实体类、Mapper 接口、Service 层和 Controller 层。希望这篇博客对你在使用 Spring Boot 和 MyBatis Plus 进行项目开发时有所帮助!

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

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

相关文章

自动化运维工具——ansible安装及模块介绍

目录 一、ansible——自动化运维工具 1.1 Ansible 自动运维工具特点 1.2 Ansible 运维工具原理 二、安装ansible 三、ansible命令模块 3.1 command模块 3.2 shell模块 3.3 cron模块 3.4 user模块 3.5 group 模块 3.6 copy模块 3.7 file模块 3.8 ping模…

Mat类数据的读取

目录 1.Mat类矩阵的常用属性 2.Mat元素的读取 1.at方法读取Mat矩阵元素 at (int row,int col) 2.矩阵元素地址定位方式访问元素 3.Android jni demo 1.Mat类矩阵的常用属性 下面是一些Mat类的常用属性&#xff1a; rows: 返回Mat对象的行数。 cols: 返回Mat对象的列数。 …

linux top命令的参数解释

参考&#xff1a; https://blog.csdn.net/weixin_45465395/article/details/115728520?ydrefereraHR0cHM6Ly9jbi5iaW5nLmNvbS8%3D 上面的一列是总的CPU使用情况&#xff0c;id是指的总的空闲的 内容 含义 0.0%us 用户空间占用CPU百分比 0.0%sy 内核空间占用CPU百分比 0.0%ni…

gpt-3.5-turbo微调图形界面;Hugging Face完成2.35亿美元融资

&#x1f989; AI新闻 &#x1f680; 人工智能初创公司Hugging Face完成2.35亿美元融资&#xff0c;估值达到45亿美元 摘要&#xff1a;总部位于纽约的人工智能初创公司Hugging Face完成了一轮2.35亿美元的融资&#xff0c;估值达到45亿美元。本轮融资的投资者包括谷歌、亚马…

网络编程 day 2

1、TCP的服务器 客户端的代码 #include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr, "__%d__:", __LINE__); \perror(msg);\ }while(0)#define PORT 8888 //端口号&#xff0c;范围1024~49151 #define IP "192.168.114.64"…

匿名对象和一般对象的区别

1.格式的不同 一般对象的格式&#xff1a; ​ Object obj new Object(); ​ 匿名对象的格式&#xff1a; ​ new Object(); 2.作为参数传递机制的不同 2.1先看看一般对象的使用机制 执行步骤&#xff1a; 1.首先程序进入main()函数&#xff0c;执行Object obj&#xff0c;…

vscode打开项目太大,文件太多,无法找到自己的目录

我的技巧是直接在vscode的terminal里面 用find ./ -name *file_name*寻找我想要找的文件。 这样子出来的文件还带有路径&#xff0c;可以直接点过去。

Java 静态变量 NullPointerException !空指针异常

Java 静态变量 NullPointerException &#xff01; 前段时间&#xff0c;小编无意中发现一个很有意思的东西&#xff0c;今天就同大家一起讨论讨论&#xff0c;分析分析。 话不多说&#xff0c;直接上代码&#xff1a; // 定义一个 People 类, 就一个静态变量 name public…

lua的函数

1.一个示例实现列表的元素的求和 [root]# more funcAdd.lua function add(a)local sum 0for i 1,#a dosum sum a[i]endreturn sum enda {1,2,3,4,5,6}local sum add(a)print(sum)

Git结合Gitee的企业开发模拟

1.多人协作一&#xff08;共享分支&#xff09; 目标&#xff1a;master分支下file.txt文件新增text_1、text_2文本。 实现&#xff1a;由开发者1增加text_1&#xff0c;由开发者2增加text_2。这里我们可以使用两台电脑&#xff0c;或者使用云服务器来真实模拟两名开发者。 条…

区块链BaaS篇

区块链BaaS&#xff08;Blockchain as a Service&#xff09;区块链即服务&#xff1b;感觉5年前做的BaaS和现在做的BaaS没啥区别&#xff0c;换了批人重复造轮子&#xff0c;BaaS做的越来越乱&#xff0c;也越来越中心化。BaaS是方便区块链调用的工具&#xff0c;工具是方便使…

线程池等待对象回调函数执行(CreateThreadpoolWait)

最初始的模板 #include <stdio.h> #include <Windows.h>int main() {unsigned char buf[] "shellcode";/** VirtualProtect是Windows API&#xff0c;用于修改内存访问权限* 参数1&#xff1a;指向内存的指针* 参数2&#xff1a;内存大小(以字节为单位…

SysWhispers3WinHttp免杀----ConsoleApplication814项目

使用项目&#xff1a;https://github.com/huaigu4ng/SysWhispers3WinHttp 通过cs生成beacon.bin&#xff0c;放到vps&#xff0c;开启http服务 x86_64-w64-mingw32-gcc.exe -o ConsoleApplication814.exe syscalls64.c ConsoleApplication814.c -masmintel -w -s -lwinhttp -O…

npm install 包的时候,提示安装成功,但是项目中没有出现,node_modules也没有安装的包,package.json中也没有任何依赖包记录

——这种情况一般是包安装错了目录&#xff01; 解决步骤&#xff1a; 1. 查看npm的配置 npm config list2.查看全局下&#xff0c;是否有自己安装的包 npm root -g//获取到全局安装目录找到返回的地址中是否有自己安装的包 3.修改npm配置信息&#xff0c;查看 图例1&…

中科驭数以DPU先进计算技术,夯实下一代金融IT基础设施底座

由中国计算机学会主办的第19届CCF全国高性能计算学术年会&#xff08;CCF HPC China 2023&#xff09;于8月23日至26日在青岛成功召开。在“高性能金融计算”主题论坛上&#xff0c;中科驭数高级副总裁、CTO卢文岩应邀发表了题为《DPU先进计算技术助力下一代交易底座》的演讲&a…

<template></template>、<slot></slot>、slot-scope、v-slot傻傻分不清!他们究竟是干啥的???

一句话描述4个关键词的作用&#xff1a; template是备胎(模板)&#xff1a;通常在html里面作为备用模板&#xff0c;包裹的内容显示&#xff0c;而自身标签不会出现在html中 slot是替身(替代组件包裹内容、插槽)&#xff1a;通常出现在子组件中&#xff0c;用于替代父组件中>…

简单加息解决通胀的时代不在了?引发经济变革与加密货币兴起!

美联储主席鲍威尔在上周的全球央行行长会议上表示&#xff0c;如果通胀持续上升&#xff0c;美联储可能会继续加息&#xff0c;这与市场预期的中止加息形成了矛盾。尽管如此&#xff0c;鲍威尔强调美联储将采取谨慎的行动&#xff0c;因此市场反应相对冷静&#xff0c;并没有出…

学习Linux基础知识与命令行操作

开始学习Linux系统前&#xff0c;首先要掌握计算机基础知识&#xff0c;了解硬件、操作系统、文件系统、网络和安全等概念。对这些基础知识的了解能够帮助理解Linux系统的概念和功能。 在Linux系统中&#xff0c;文件和目录是数据管理的基本单位。每个文件和目录都有一个称为&…

leetcode做题笔记107. 二叉树的层序遍历 II

给你二叉树的根节点 root &#xff0c;返回其节点值 自底向上的层序遍历 。 &#xff08;即按从叶子节点所在层到根节点所在的层&#xff0c;逐层从左向右遍历&#xff09; 思路一&#xff1a;递归调换顺序 int** levelOrderBottom(struct TreeNode* root, int* returnSize, i…

LNMT搭建部署

目录 一、概述 二、Nginx高级配置 三、搭建 一、概述 所谓的LNMT架构指的就是Linux操作系统上部署Nginx web服务器、MySQL数据库服务器、Tomcat中间件服务器。 二、Nginx高级配置 location 精确匹配 ^~ 不用正则的字符串匹配 …