Spring Boot 项目创建

创建一个新项目:

打开 Spring Initializr 网址:https://start.spring.io/ ,然后创建一个新项目:

springboot3.3.5_jdk17:

  • Project(Maven)
  • 编程语言(Java 17)
  • Spring Boot 版本(3.3.*)
  • Packaging(Jar)

注意:包名不要使用纯数字,尽量规范,否则会出现奇怪的问题

添加以下依赖:

  • Spring Web
  • MyBatis Framework
  • MySQL Driver
  • Lombok
  • Spring Boot DevTools

模板1下载地址:demo_springboot3.3.5_jdk17.zip

解压后,拷贝到本地git仓库目录中。

在这里插入图片描述

导入项目并配置 Maven 仓库镜像

将下载的项目解压后,使用喜欢的 IDE(如 IntelliJ IDEA)打开。

pom.xml 文件中,添加 Maven 仓库的镜像配置,以加快依赖下载速度:

<project><!-- 其他内容 --><repositories><repository><id>aliyunmaven</id><name>aliyun maven</name><url>https://maven.aliyun.com/repository/public</url></repository><repository><id>huaweicloud</id><name>huawei cloud maven</name><url>https://repo.huaweicloud.com/repository/maven/</url></repository></repositories><pluginRepositories><pluginRepository><id>aliyunmaven</id><name>aliyun maven</name><url>https://maven.aliyun.com/repository/public</url></pluginRepository></pluginRepositories><!-- 其他内容 -->
</project>

配置 application.yml 文件

src/main/resources/ 目录下,创建一个 application.yml 文件,配置服务器端口和数据源:

server:port: 28080spring:datasource:url: jdbc:mysql://localhost:3306/rbac_system?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghaiusername: your_usernamepassword: your_passworddriver-class-name: com.mysql.cj.jdbc.Drivermybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.example.rbacsystem

注意:

  • your_usernameyour_password 替换为您实际的 MySQL 数据库用户名和密码。
  • type-aliases-package 用于指定 MyBatis 的别名包路径,以简化映射配置。
server:port: 28080spring:datasource:url: jdbc:mysql://localhost:3306/rbac_system?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghaiusername: rootpassword: XXXXXXXXXXXdriver-class-name: com.mysql.cj.jdbc.Drivermybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.example.demo
修改说明

1. server 配置

server:port: 28080
  • port 指定 Spring Boot 应用的运行端口号。
    • 当前配置为 28080,表示应用启动后可以通过 http://localhost:28080 访问。
    • 如果未配置,默认端口为 8080

2. spring.datasource 配置

spring:datasource:url: jdbc:mysql://localhost:3306/rbac_system?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghaiusername: rootpassword: XXXXXXXXdriver-class-name: com.mysql.cj.jdbc.Driver
  • url 数据库连接的 URL。
    • jdbc:mysql://localhost:3306/rbac_system:连接到本地 MySQL 数据库的 rbac_system 数据库。
      • localhost 表示数据库运行在本地。
      • 3306 是 MySQL 的默认端口。
      • rbac_system 是要连接的数据库名称。(我的就是rbac_system,因为之前是根据老师代码数据库名字配置的CREATE DATABASE IF NOT EXISTS rbac_system;)
    • 参数:
      • useUnicode=true:启用 Unicode 支持,确保支持中文或其他语言字符。
      • characterEncoding=utf8:指定字符编码为 UTF-8
      • serverTimezone=Asia/Shanghai:设置服务器的时区为上海,防止时区差异导致时间错误。
  • username 数据库用户名。
    • 需要替换为您实际数据库的用户名,例如 root
  • password 数据库密码。
    • 需要替换为实际密码。
  • driver-class-name JDBC 驱动类。
    • 当前配置为 com.mysql.cj.jdbc.Driver,这是 MySQL 8.x 的驱动类名称。

3. mybatis 配置

mybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.example.demo
  • mapper-locations
    • 指定 MyBatis 映射文件(*.xml)的位置。
    • classpath:mapper/*.xml:表示映射文件放在项目的 resources/mapper 文件夹中,文件后缀为 .xml
    • MyBatis 映射文件用于定义 SQL 语句和数据库表映射关系。
  • type-aliases-package
    • 指定 MyBatis 中实体类的包路径。
    • com.example.demo:表示实体类位于该包下。(这个是我的包的名字)
    • MyBatis 会自动将该包下的类简化为别名,例如类 User 可直接使用别名 user

总结

这段配置文件实现了以下功能:

  1. 配置了 Spring Boot 应用的运行端口为 28080
  2. 配置了连接本地 MySQL 数据库的相关信息(URL、用户名、密码、驱动)。
  3. 指定了 MyBatis 的映射文件路径和实体类所在的包。

下一步需要的操作

  1. 检查 MySQL 数据库:
    • 确保 MySQL 数据库正在运行,且端口 3306 可用。
    • 确认已创建名为 rbac_system 的数据库。
    • 替换 your_usernameyour_password 为实际的数据库用户名和密码。
  1. 准备 MyBatis 映射文件:
    • resources/mapper 文件夹中放置 MyBatis 的 .xml 映射文件。
    • 确保 .xml 文件中的 SQL 与数据库表结构一致。
  1. 准备实体类:
    • com.example.rbacsystem 包中创建与数据库表对应的实体类。

配置完成后,启动 Spring Boot 项目,即可连接到 MySQL 数据库并使用 MyBatis 执行数据库操作。

记得把pom配置,如下,之后就会由橙色变成蓝色:

在这里插入图片描述

创建 User 实体类

package com.example.demo;import lombok.Data;@Data
public class User {private Integer userId;private String username;private String password;private String email;private String status;
}

创建 Mapper 接口

com.example.demo.mapper 包下,创建 Mapper 接口。

UserMapper.java
package com.example.demo;import com.example.demo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;@Mapper
public interface UserMapper {User getUserById(@Param("userId") Integer userId);User findByUsername(@Param("username") String username);int insertUser(User user);// 其他需要的方法
}

src/main/resources/mapper/ 目录下,创建对应的 XML 映射文件。

UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.example.rbacsystem.mapper.UserMapper"><resultMap id="UserResultMap" type="com.example.rbacsystem.model.User"><id property="userId" column="user_id"/><result property="username" column="username"/><result property="password" column="password"/><result property="email" column="email"/><result property="status" column="status"/></resultMap><select id="getUserById" resultMap="UserResultMap">SELECT * FROM users WHERE user_id = #{userId}</select><select id="findByUsername" resultMap="UserResultMap">SELECT * FROM users WHERE username = #{username}</select><insert id="insertUser" parameterType="com.example.rbacsystem.model.User">INSERT INTO users (username, password, email, status)VALUES (#{username}, #{password}, #{email}, #{status})</insert><!-- 其他 SQL 映射 -->
</mapper>

注意:

  • namespace 应与 Mapper 接口的全限定名一致。
  • 使用 resultMap 来映射数据库列名与实体类字段名。

创建 Service 层

com.example.rbacsystem.service 包下,创建服务类,处理业务逻辑。

UserService.java

package com.example.rbacsystem.service;import com.example.rbacsystem.mapper.UserMapper;
import com.example.rbacsystem.model.User;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;@Service
@RequiredArgsConstructor
public class UserService {private final UserMapper userMapper;public User getUserById(Integer userId) {return userMapper.getUserById(userId);}public User findByUsername(String username) {return userMapper.findByUsername(username);}public int createUser(User user) {return userMapper.insertUser(user);}// 其他业务逻辑方法
}

创建 Controller 层

com.example.rbacsystem.controller 包下,创建控制器类,处理 HTTP 请求。

UserController.java

package com.example.rbacsystem.controller;import com.example.rbacsystem.model.User;
import com.example.rbacsystem.service.UserService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/api/users")
@RequiredArgsConstructor
public class UserController {private final UserService userService;@GetMapping("/{userId}")public User getUserById(@PathVariable Integer userId) {return userService.getUserById(userId);}@PostMapping("/")public String createUser(@RequestBody User user) {int result = userService.createUser(user);return result > 0 ? "User created successfully" : "Failed to create user";}// 其他请求处理方法
}

注意:

  • 使用 @RestController 注解,表示这是一个控制器,并且所有方法都返回 JSON 格式的数据。
  • 请求路径前缀为 /api/users,与前端的 API 请求路径保持一致。

测试接口(暂时不需要做,后端根目录并没有设置,所以测试后应该是如下页面)

在这里插入图片描述

使用 Postman 或浏览器,访问以下 URL,测试后端接口是否正常工作。

  • 获取用户信息:
GET http://localhost:28080/api/users/1

响应示例:

{"userId": 1,"username": "admin","password": "admin123","email": "admin@example.com","status": "enabled"
}
  • 创建新用户:
POST http://localhost:28080/api/users/

请求体(JSON):

{"username": "newuser","password": "newpassword","email": "newuser@example.com","status": "enabled"
}

响应示例:

User created successfully

注意:

  • 确保数据库中存在对应的数据。
  • 在生产环境中,不要将密码以明文形式返回,应进行加密和安全处理。

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

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

相关文章

基于蓝牙通信的手机遥控智能灯(论文+源码)

1.系统设计 灯具作为人们日常生活的照明工具为人们生活提供光亮&#xff0c;本次基于蓝牙通信的手机遥控智能灯设计功能如下&#xff1a; &#xff08;1&#xff09;用户可以通过蓝牙通信模块的作用下&#xff0c;在手机端遥控切换智能灯不同的工作模式&#xff1b; &#x…

为什么光耦固态继电器(SSR)值得关注?

光耦固态继电器&#xff08;SSR&#xff09;作为现代电子控制系统中不可或缺的关键组件&#xff0c;正逐步取代传统机械继电器。通过利用光耦合技术&#xff0c;SSR不仅能够提供更高的可靠性&#xff0c;还能适应更加复杂和严苛的应用环境。在本文中&#xff0c;我们将深入探讨…

AI @国际象棋世界冠军赛: 从棋盘到科研创新之路

点击屏末 | 阅读原文 | 在小红书和 Google 谷歌回顾 WCC

leetcode二叉搜索树部分笔记

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 二叉搜索树 1. 二叉搜索树的最小绝对差2. 二叉搜索树中第 K 小的元素3. 验证二叉搜索树 1. 二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中…

计算机工作流程

分析下面的计算机工作流程&#xff1a; 1.取数a至ACC&#xff1a;PC程序寄存器自增1&#xff0c;变成0&#xff08;可以理解为PC初始从-1开始自增&#xff09;&#xff1b;接着PC把当前指令的地址给到MAR&#xff08;地址寄存器&#xff09;&#xff1b;MAR拿到当前地址后&…

ffmpeg翻页转场动效的安装及使用

文章目录 前言一、背景二、选型分析2.1 ffmpeg自带的xfade滤镜2.2 ffmpeg使用GL Transition库2.3 xfade-easing项目 三、安装3.1、安装依赖&#xff08;[参考](https://trac.ffmpeg.org/wiki/CompilationGuide/macOS#InstallingdependencieswithHomebrew)&#xff09;3.2、获取…

Elasticsearch8.17.0在mac上的安装

1、下载并安装 下载8.17版本es(目前最新版本)&#xff1a;Download Elasticsearch | Elastic 也可以通过历史版本列表页下载&#xff1a;Past Releases of Elastic Stack Software | Elastic 当然也可以指定具体版本号进行下载&#xff1a;Elasticsearch 8.17.0 | Elastic …

解决Apache/2.4.39 (Win64) PHP/7.2.18 Server at localhost Port 80问题

配置一下apache里面的配置文件&#xff1a;httpd.conf 和 httpd.vhosts.conf httpd.conf httpd-vhosts.conf 重启服务 展示&#xff1a; 浏览器中中文乱码问题&#xff1a;

git 删除鉴权缓存及账号信息

在Windows系统下 清除凭证管理器中的Git凭据 按下Win R键&#xff0c;打开“运行”对话框&#xff0c;输入control&#xff0c;然后回车&#xff0c;打开控制面板。在控制面板中找到“用户账户”&#xff0c;然后点击“凭据管理器”。在凭据管理器中&#xff0c;找到“Windows…

MacOS下PostIn安装配置指南

PostIn是一款开源免费的接口管理工具&#xff0c; 下面介绍私有部署版本的MacOS下安装与配置。私有部署版本更适合有严格数据安全要求的企业&#xff0c;实现对数据和系统的完全控制。 &#xfeff; &#xfeff; 1、MacOS服务端安装 Mac安装包下载地址&#xff1a;下载Mac安…

最适合智能体的身份认证技术:对比OpenID Connect、API keys、did:wba

最适合智能体的身份认证技术&#xff1a;对比OpenID Connect、API keys、did:wba 智能体需要新的身份认证技术 智能体对身份认证技术提出了新的需求&#xff0c;其中最重要的一个就是互联互通&#xff0c;特别是让任意两个智能体都能够互联互通。 其中的原理很简单&#xff1a;…

排序算法(7):堆排序

问题 排序 [30, 24, 5, 58, 18, 36, 12, 42, 39] 堆排序 堆排序是一种基于堆数据结构的排序算法。堆是一个近似完全二叉树的结构&#xff0c;即除了最后一层外&#xff0c;每一层都必须填满&#xff0c;且最后一层从左往右填充。 堆可以分为大根堆和小根堆。在大根堆中&…

多核CPU调度是咋搞的?

其实很多情况下都有 这样的疑问 为什么多核CPU用着用着会“躺平”&#xff1f; 为什么手机有 8 核&#xff0c;跑分时性能却不是核心数的翻倍&#xff1f; 答案的钥匙&#xff0c;就藏在多核CPU的调度机制里。 为了更直观地理解&#xff0c;以一个《王者荣耀》游戏服务器为例…

Qt Quick:CheckBox 复选框

复选框不止选中和未选中2种状态哦&#xff0c;它还有1种部分选中的状态。这3种状态都是Qt自带的&#xff0c;如果想让复选框有部分选中这个状态&#xff0c;需要将三态属性&#xff08;tristate&#xff09;设为true。 未选中的状态值为0&#xff0c;部分选中是1&#xff0c;选…

使用ElasticSearch实现全文检索

文章目录 全文检索任务描述技术难点任务目标实现过程1. java读取Json文件&#xff0c;并导入MySQL数据库中2. 利用Logstah完成MySQL到ES的数据同步3. 开始编写功能接口3.1 全文检索接口3.2 查询详情 4. 前端调用 全文检索 任务描述 在获取到数据之后如何在ES中进行数据建模&a…

【mysql】1205 -Lock wait timeout exceeded; try restarting transaction

问题&#xff1a; mysql8执行SQL提示下面错误&#xff1a; 1205 -Lock wait timeout exceeded; try restarting transaction 1205-超过锁定等待超时&#xff1b;尝试重新启动事务 可能的原因&#xff1a; 事务冲突&#xff1a;多个事务同时尝试修改同一行数据&#xff0c;导…

android 登录界面编写

1、登录页面实现内容 1.实现使用两个EditText输入框输入用户名和密码。 2.使用CheckBox控件记住密码功能。 3.登录时候&#xff0c;验证用户名和密码是否为空。 4.当前CheckBox控件记住密码勾上时&#xff0c;使用SharedPreferences存储用户名和密码。 5.登录时候使用Prog…

将4G太阳能无线监控的视频接入电子监控大屏,要考虑哪些方面?

随着科技的飞速发展&#xff0c;4G太阳能无线监控系统以其独特的优势在远程监控领域脱颖而出。这种系统结合了太阳能供电的环保特性和4G无线传输的便捷性&#xff0c;为各种环境尤其是无电或电网不稳定的地区提供了一种高效、可靠的视频监控解决方案。将这些视频流接入大屏显示…

Linux C 程序 【05】异步写文件

1.开发背景 Linux 系统提供了各种外设的控制方式&#xff0c;其中包括文件的读写&#xff0c;存储文件的介质可以是 SSD 固态硬盘或者是 EMMC 等。 其中常用的写文件方式是同步写操作&#xff0c;但是如果是写大文件会对 CPU 造成比较大的负荷&#xff0c;采用异步写的方式比较…

重拾设计模式--原型模式

文章目录 原型模式定义原型模式UML图优点缺点使用场景C 代码示例深拷贝、浅拷贝 原型模式定义 用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型创建新的对象&#xff1b; 核心中的核心就是 克隆clone ,后面讲 原型模式是一种创建型设计模式&#xff0c;它的主要…