当前位置: 首页 > news >正文

5分钟快速搭建一个 SpringBoot3 + MyBatis-Plus 工程项目

环境

idea 2023.3.5
jdk 17
mysql 8

创建SpringBoot工程

创建SpringBoot工程,这里有两种方式可选,一种是使用idea提供的Spring Initializr自动创建,一种是通过Maven Archetype手动创建

自动创建SpringBoot工程

使用Spring Initializr创建,这里选择Maven类型,JDKJava选择17,选择后点击Next
在这里插入图片描述

上方选择自己想要的spring boot版本,下方在Web栏勾选Spring Web,选择后点击Create
在这里插入图片描述
pom.xml文件的右上角点击maven图标刷新maven依赖
在这里插入图片描述
刷新后,在工程名 + Application的文件中可以启动这个springBoot项目
在这里插入图片描述
这里我们创建一个/hello/word路径来做测试,在com.jiunian.springboot_mybatisplus_auto下创建controller包,并创建HelloController

@RestController
@RequestMapping("/hello")
public class HelloController {@RequestMapping("/world")public String helloWorld() {return "Hello World!";}
}

在这里插入图片描述
启动SpringbootMybatisplusAutoApplication
在这里插入图片描述
在下方的终端输出可以看出,项目启动在8080端口的/目录下
在这里插入图片描述
尝试访问,访问成功
在这里插入图片描述

手动创建SpringBoot工程

选择Maven Archetype方式创建项目,在Archetype处选择quickstart选项,选择后点击Create
在这里插入图片描述
等待项目创建完成,修改pom.xml文件添加springboot父类并添加spring-boot-web依赖,修改后需要点击右上角maven图标刷新依赖

  <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.1</version></parent><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.1</version></parent><groupId>com.jiunian</groupId><artifactId>springboot_mybatisplus_manual</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><name>springboot_mybatisplus_manual</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>
</project>

将初始提供给我们的App类重构,改名为SpringBootMyBatisPlusManualApplication,并将其内容修改为下方方式

package com.jiunian;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class SpringBootMyBatisPlusManualApplication
{public static void main( String[] args ){// 第一个参数是当前类的.classSpringApplication.run(SpringBootMyBatisPlusManualApplication.class, args);}
}

创建该项目的spring配置文件,在main下新创建一个文件夹,resources
在这里插入图片描述
在resource目录下创建一个application.yaml文件或application.properties,没有修改配置需求时可以不写东西
在这里插入图片描述
最后,和自动创建一样,创建一个/hello/word路径来做测试,在com.jiunian下创建controller包,并创建HelloController

@RestController
@RequestMapping("/hello")
public class HelloController {@RequestMapping("/world")public String helloWorld() {return "Hello World!";}
}

在这里插入图片描述
启动SpringbootMybatisplusManualApplication
在这里插入图片描述

在下方的终端输出可以看出,项目启动在8080端口的/目录下
在这里插入图片描述

尝试访问,访问成功
在这里插入图片描述

整合MyBatis-Plus

我这里使用手动创建的SpringBoot工程继续整合MyBatis-Plus,修改项目pom.xml,导入mybatis-pluslombokmysql-connector-java,其中lombok是用于简化类开发,修改后,记得更新maven依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.1</version></parent><groupId>com.jiunian</groupId><artifactId>springboot_mybatisplus_manual</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><name>springboot_mybatisplus_manual</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.27</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.8</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>
</project>

修改application.yaml文件,配置数据库连接

spring:datasource:# 连接的数据库地址url: jdbc:mysql:///mybatis?useSSL=false# 数据库用户名称username: root# 该用户的密码password: 123456

为了测试是否配置成功,我们创建数据库mybatis

create table mybatis

创建dept表

CREATE TABLE dept (id INT NOT NULL PRIMARY KEY,name VARCHAR(255) NOT NULL,address VARCHAR(255) NOT NULL,age INT NOT NULL,sex VARCHAR(255) NOT NULL
);

插入语句

INSERT INTO dept VALUES (1, '张三', 25, '男', '北京');
INSERT INTO dept VALUES (2, '李四', 26, '男', '上海');
INSERT INTO dept VALUES (3, '王五', 30, '女', '天津');

创建对应的pojoDept,在com.jiunian下创建一个pojo包并在其下创建Dept

package com.jiunian.pojo;import lombok.Data;
// 这里使用了lombok的注解
// 能够自动生成所有属性对应的getters/setters、equals、hashCode和toString方法
// 如果不使用 @TableName 注解,MyBatis-Plus 默认会使用实体类的类名作为表名(默认是首字母小写,驼峰转下划线形式)
@Data
public class Dept {private int id;private String name;private int age;private String sex;private String address;
}

如下图结构创建该类的MapperServiceServiceImpl
在这里插入图片描述
DeptMapper

package com.jiunian.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jiunian.pojo.Dept;
import org.apache.ibatis.annotations.Mapper;@Mapper
// 继承BaseMapper<T>接口,可以直接调用Mybatis-Plus提供的CRUD方法
public interface DeptMapper extends BaseMapper<Dept> {
}

DeptService

package com.jiunian.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.jiunian.pojo.Dept;public interface DeptService extends IService<Dept> {
}

DeptServiceImpl

package com.jiunian.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jiunian.mapper.DeptMapper;
import com.jiunian.pojo.Dept;
import com.jiunian.service.DeptService;
import org.springframework.stereotype.Service;@Service
public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements DeptService {
}

controller下为Dept创建一个控制类DeptController

package com.jiunian.controller;import com.jiunian.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/dept")
public class DeptController {@Autowiredprivate DeptService deptService;@RequestMapping("/getAll")public String getAll() {return deptService.list().toString();}
}

接下来访问localhost:8080/dept/getAll来检查是否连接成功,如下图所示,连接成功
在这里插入图片描述

相关文章:

5分钟快速搭建一个 SpringBoot3 + MyBatis-Plus 工程项目

环境 idea 2023.3.5 jdk 17 mysql 8 创建SpringBoot工程 创建SpringBoot工程&#xff0c;这里有两种方式可选&#xff0c;一种是使用idea提供的Spring Initializr自动创建&#xff0c;一种是通过Maven Archetype手动创建 自动创建SpringBoot工程 使用Spring Initializr创建…...

如何判断https使用了哪个版本的TLS?

互联网各领域资料分享专区(不定期更新): Sheet 正文 一、使用浏览器开发者工具(适合普通用户) 1. Google Chrome 打开目标网站(如 https://example.com)。点击地址栏左侧的 锁形图标。选择 「连接是安全的」 → 「证书信息」。在证书详情中,查看 「技术详细信息」 或 「…...

如何在 NocoBase 中实现 CRM 的线索转化

1. 引言 本教程将一步一步地引导您如何在 NocoBase 中实现 CRM 的商机转化&#xff08;Opportunity Conversion&#xff09;功能。我们将介绍如何创建所需的 collections&#xff08;数据表&#xff09;、配置数据管理页面、设计转化流程以及设置关联管理&#xff0c;从而帮助…...

StarRocks-fe工程在Cursor中不能识别为Java项目

SR简介 StarRocks 是一款高性能分析型数据库&#xff0c;支持实时、多维度、高并发的数据分析。本指南旨在解决在使用 VSCode 或 Cursor 开发 StarRocks 后端项目时遇到的模块识别问题。 问题描述 使用 Cursor 或 VSCode 打开 StarRocks 的后端工程 fe 时&#xff0c;spark-…...

影刀RPA开发拓展--SQL常用语句全攻略

前言 SQL&#xff08;结构化查询语言&#xff09;是数据库管理和操作的核心工具&#xff0c;无论是初学者还是经验丰富的数据库管理员&#xff0c;掌握常用的 SQL 语句对于高效管理和查询数据都至关重要。本文将系统性地介绍最常用的 SQL 语句&#xff0c;并为每个语句提供详细…...

05类加载机制篇(D6_方法调用和方法执行)

目录 一、字节码指令集 二、基本数据类型 1. 加载和存储指令 2. const系列 3. push系列 4. ldc系列 5. load系列 load系列A load系列B 6. store系列 store系列A store系列B 7. pop系列 8. 栈顶元素数学操作及移位操作系列 9. 运算指令 10. 类型转换指令 11. 宽…...

视音频数据处理入门:颜色空间(二)---ffmpeg

目录 概述 流程 相关流程 初始化方法 初始化代码 转换方法 转换代码 释放方法 整体代码介绍 代码路径 概述 本篇简单说一下基于FFmpeg的libswscale的颜色空间转换&#xff1b;Libswscale里面实现了各种图像像素格式的转换&#xff0c;例如&#xff1a;YUV与RGB之间的…...

从零开始:H20服务器上DeepSeek R1 671B大模型部署与压力测试全攻略

前言 最近&#xff0c;我有幸在工作中接触到了DeepSeek R1 671B模型&#xff0c;这是目前中文开源领域参数量最大的高质量模型之一。DeepSeek团队在2024年推出的这款模型&#xff0c;以其惊人的6710亿参数量和出色的推理性能&#xff0c;引起了业界广泛关注。 作为一名AI基础…...

【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(5)

1.问题描述&#xff1a; 提供两套标准方案&#xff0c;可根据体验需求选择&#xff1a; 1.地图Picker(地点详情) 用户体验&#xff1a;①展示地图 ②标记地点 ③用户选择已安装地图应用 接入文档&#xff1a;https://developer.huawei.com/consumer/cn/doc/harmonyos-guide…...

Leetcode 3469. Find Minimum Cost to Remove Array Elements

Leetcode 3469. Find Minimum Cost to Remove Array Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3469. Find Minimum Cost to Remove Array Elements 1. 解题思路 这一题我没啥特别好的思路&#xff0c;就只能动态规划了&#xff0c;倒是也能过&#xff0c;不过总…...

Excel的行高、列宽单位不统一?还是LaTeX靠谱

想要生成田字格、米字格、带拼音标准&#xff0c;方便小学生书法和练字。Word&#xff0c;Excel之类所见即所得是最容易相当的方式。但它们处理带田字格之类背景时&#xff0c;如果没有专用模板、奇奇怪怪的插件&#xff0c;使用起来会碰到各种问题。比如&#xff0c;Word里面用…...

(新版本onenet)stm32+esp8266/01s mqtt连接onenet上报温湿度和远程控制(含小程序)

物联网实践教程&#xff1a;微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——汇总 前言 之前在学校获得了一个新玩意&#xff1a;ESP-01sWIFI模块&#xff0c;去搜了一下这个小东西很有玩点&#xff0c;远程控制LED啥的&#xff0c;然后我就想…...

告别GitHub连不上!一分钟快速访问方案

一、当GitHub抽风时&#xff0c;你是否也这样崩溃过&#xff1f; &#x1f621; npm install卡在node-sass半小时不动&#x1f62d; git clone到90%突然fatal: early EOF&#x1f92c; 改了半天hosts文件&#xff0c;第二天又失效了... 根本原因&#xff1a;传统代理需要复杂…...

迷你世界脚本对象库接口:ObjectLib

对象库接口&#xff1a;ObjectLib 迷你世界 更新时间: 2023-04-26 20:21:09 具体函数名及描述如下: 序号 函数名 函数描述 1 getAreaData(...) 获取区域数据 2 getPositionData(...) 获取位置数据 3 getLivingData(...) 获取生物数据 4 getItemDat…...

数据库事务、乐观锁及悲观锁

参考&#xff1a;node支付宝支付及同步、异步通知、主动查询支付宝订单状态 以下容结合上述链接查看 1. 什么是数据库事务&#xff1f; 1.1. 连续执行数据库操作 在支付成功后&#xff0c;我们在自定义的paidSuccess里&#xff0c;依次更新了订单状态和用户信息。也就说这里…...

蓝桥王国--dij模板

#include <bits/stdc.h> // 万能头 using namespace std; typedef pair<long long ,int> PII; int n,m; long long d[300011]; struct edge///邻接表 {int v;long long w; }; int vis[300011]; vector<edge> mp[300011];///邻接表 void dij(int s)///dij单源…...

Java基础关键_017_集合(一)

目 录 一、概述 二、Collection 关系结构 1.概览 2.说明 三、Collection 接口 1.通用方法 &#xff08;1&#xff09;add(E e) &#xff08;2&#xff09;size() &#xff08;3&#xff09;addAll(Collection c) &#xff08;4&#xff09;contains(Object o) &#…...

Rust编程实战:Rust实现简单的Web服务,单线程性能问题

知识点 tcp 服务多线程处理 实现功能 启动web服务&#xff0c;访问链接获取页面内容。 单线程web服务 TcpListener 使用 TcpListener 开启服务端口 let listener TcpListener::bind("127.0.0.1:7878").unwrap();处理客户端连接&#xff1a; for stream in lis…...

GitLab 密钥详解:如何安全地使用 SSH 密钥进行身份验证

目录 一、什么是 GitLab SSH 密钥&#xff1f;二、为什么要使用 SSH 密钥&#xff1f;三、如何生成 SSH 密钥&#xff1f;1. Linux/macOS2. Windows 四、将公钥添加到 GitLab五、配置 SSH 客户端六、常见问题及解决方案七、总结 GitLab 是一个功能强大的 Git 仓库管理平台&…...

《论数据分片技术及其应用》审题技巧 - 系统架构设计师

论数据分片技术及其应用写作框架 一、考点概述 本论题“论数据分片技术及其应用”主要考察的是软件工程中数据分片技术的理解、应用及其实际效果分析。考点涵盖以下几个方面&#xff1a; 首先&#xff0c;考生需对数据分片的基本概念有清晰的认识&#xff0c;理解数据分片是…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...