Spring Boot + MyBatis 实现的简单用户管理项目的完整目录结构示例

在这里插入图片描述


📁 示例项目结构(基于 Maven)

user-management/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/example/usermanagement/
│   │   │       ├── controller/
│   │   │       │   └── UserController.java
│   │   │       ├── service/
│   │   │       │   ├── UserService.java
│   │   │       │   └── impl/
│   │   │       │       └── UserServiceImpl.java
│   │   │       ├── mapper/
│   │   │       │   └── UserMapper.java
│   │   │       ├── entity/
│   │   │       │   └── User.java
│   │   │       └── UserManagementApplication.java
│   │   ├── resources/
│   │   │   ├── mapper/
│   │   │   │   └── UserMapper.xml
│   │   │   ├── application.yml
│   │   │   └── logback-spring.xml (可选)
│   └── test/
│       └── java/
│           └── com/example/usermanagement/
│               └── UserServiceTests.java
├── pom.xml

各部分说明:

🧱 User.java(实体类)

package com.example.usermanagement.entity;public class User {private Integer id;private String name;private String email;// Getters & Setters
}

🧩 UserMapper.java(Mapper 接口)

package com.example.usermanagement.mapper;import com.example.usermanagement.entity.User;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface UserMapper {User findById(Integer id);List<User> findAll();int insert(User user);int update(User user);int deleteById(Integer id);
}

📄 UserMapper.xml(XML 映射文件)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.example.usermanagement.mapper.UserMapper"><select id="findById" resultType="com.example.usermanagement.entity.User">SELECT * FROM user WHERE id = #{id}</select><select id="findAll" resultType="com.example.usermanagement.entity.User">SELECT * FROM user</select><insert id="insert">INSERT INTO user(name, email) VALUES (#{name}, #{email})</insert><update id="update">UPDATE user SET name=#{name}, email=#{email} WHERE id=#{id}</update><delete id="deleteById">DELETE FROM user WHERE id=#{id}</delete></mapper>

🧠 UserService.javaUserServiceImpl.java

public interface UserService {User getUserById(Integer id);List<User> getAllUsers();void addUser(User user);void updateUser(User user);void deleteUser(Integer id);
}
@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;public User getUserById(Integer id) {return userMapper.findById(id);}public List<User> getAllUsers() {return userMapper.findAll();}public void addUser(User user) {userMapper.insert(user);}public void updateUser(User user) {userMapper.update(user);}public void deleteUser(Integer id) {userMapper.deleteById(id);}
}

🌐 UserController.java

@RestController
@RequestMapping("/users")
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/{id}")public User getUser(@PathVariable Integer id) {return userService.getUserById(id);}@GetMappingpublic List<User> getAllUsers() {return userService.getAllUsers();}@PostMappingpublic void addUser(@RequestBody User user) {userService.addUser(user);}@PutMappingpublic void updateUser(@RequestBody User user) {userService.updateUser(user);}@DeleteMapping("/{id}")public void deleteUser(@PathVariable Integer id) {userService.deleteUser(id);}
}

⚙️ application.yml

spring:datasource:url: jdbc:mysql://localhost:3306/user_db?useSSL=false&serverTimezone=UTCusername: rootpassword: yourpassworddriver-class-name: com.mysql.cj.jdbc.Drivermybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.example.usermanagement.entity

🚀 UserManagementApplication.java

@SpringBootApplication
public class UserManagementApplication {public static void main(String[] args) {SpringApplication.run(UserManagementApplication.class, args);}
}

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

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

相关文章

嵌入式RTC工作原理及应用场景

20ppm 是衡量 RTC&#xff08;实时时钟&#xff09;精度的关键指标&#xff0c;表示 每百万秒&#xff08;约11.57天&#xff09;的最大时间误差范围。以下是通俗易懂的解释&#xff1a; 1. ppm 的含义 ppm Parts Per Million&#xff08;百万分之一&#xff09; 1 ppm 1/1,…

[Godot][游戏开发] 如何在 Godot 中配置 Android 环境(适配新版 Android Studio)

在使用 Godot 进行 Android 项目的开发与导出时&#xff0c;配置 Android 环境是一项必要步骤。随着 Android Studio 的更新&#xff08;特别是自 Arctic Fox 版本起&#xff09;&#xff0c;安装方式发生了变化&#xff0c;默认不再引导用户手动配置 SDK/JDK/NDK&#xff0c;而…

量子语言模型——where to go

1️⃣ 在大语言模型&#xff08;LLM&#xff09;高度发达的今天&#xff0c;还研究这些小模型&#xff08;如n-gram、RNN、量子语言模型&#xff09;是否有意义&#xff1f; ✅ 有意义&#xff0c;但意义已经转变了——不再是用于「直接生产 SOTA 应用」&#xff0c;而是&…

机电的焊接技术

焊接技术:高温或高压条件下,使用焊接材料(焊条或焊丝)将两块或两块以上的母材(待焊接的工件)连接 成一个整体的操作方法&#xff61; 2.3.1 焊接设备和焊接材料的分类及选用 1.焊接设备&#xff08;对应焊接方法&#xff09; 2.焊接材料&#xff08;焊条、焊丝、焊剂、焊接气…

深入解析Vue.js:构建现代Web应用的高效之道

一、Vue.js 的核心设计理念 Vue.js 以渐进式框架为定位,强调轻量灵活与易上手性,允许开发者根据项目需求逐步引入核心功能或扩展模块。其核心设计遵循以下原则: 响应式数据绑定:通过数据劫持(Object.defineProperty/Proxy)和发布 - 订阅模式,实现视图与数据的自动同步,…

信贷特征分析可视化函数(外置指标面板完整版)

XY的基础处理 target_column[SeriousDlqin2yrs] feature_columns[RevolvingUtilizationOfUnsecuredLines, age,NumberOfTime30-59DaysPastDueNotWorse, DebtRatio, MonthlyIncome,NumberOfOpenCreditLinesAndLoans, NumberOfTimes90DaysLate,NumberRealEstateLoansOrLines, Nu…

ESP32-idf学习(三)esp32C3连接iot

一、前言 上一篇用蓝牙作为通信方式&#xff0c;虽然勉强完成了控制&#xff0c;但结果显然不是那么符合我们的预期&#xff0c;既然用蓝牙还需要研究一段时间&#xff0c;那我们就先整一些现成的&#xff0c;不需要研究的&#xff01;iot云平台&#xff01;这里当然也是通过w…

Axure RP11安装、激活、汉化

一:注册码 Axure RP11.0.0.4122在2025-5-29日亲测有效: 49bb9513c40444b9bcc3ce49a7a022f9

高光谱成像相机:基于高光谱成像技术的玉米种子纯度检测研究

种子纯度是衡量种子质量的核心指标之一&#xff0c;直接影响农作物产量与品质。传统检测方法&#xff08;如形态学观察、生化分析&#xff09;存在耗时长、破坏样本、依赖人工等缺陷。近年来&#xff0c;高光谱成像技术因其融合光谱与图像信息的优势&#xff0c;成为无损检测领…

Excel 中的TEXTJOIN用法(基础版),将Excel 多个单元格内容按条件合并到一个单元格

1.新建一张数据透视表 选择你需要的维度所在的列 2.点击确定生成&#xff0c;勾选右边的维度 3.选中单元格&#xff0c;通过 ShiftF3 查看函数参数 第一个参数&#xff1a;分隔符&#xff0c;用来分隔合并的文本&#xff0c;不需要分隔用"" 第二个参数&#xff1a;…

2025.05.28【Choropleth】群体进化学专用图:区域数据可视化

Load geospatial data Start by loading your geospatial data in R, and build a basic plot. Data from the package The cartography comes with a set of geospatial data included. Learn how to use it to build a choropleth map. 文章目录 Load geospatial dataData …

QT-Creator安装教程(windows)

目录 1,下载 1.1 镜像源下载 1.2 运行下载的exe文件 1.2.1 QT5 版本安装 1.2.2 QT6 版本安装 1.2.3 如何在安装完成之后,继续添加扩展包 1,下载 1.1 镜像源下载 地址:Index of /qtproject/

Deepin 23.10安装Docker

个人博客地址&#xff1a;Deepin 23.10安装Docker | 一张假钞的真实世界 Deepin 是基于 Debian 的国产 Linux 发行版&#xff0c;安装 Docker Desktop 可能会遇到兼容性问题&#xff0c;因为 Docker Desktop 官方主要支持 Ubuntu/Debian/Red Hat/Fedora/Arch 等主流发行版&…

ARXML解析与可视化工具

随着汽车电子行业的快速发展,AUTOSAR标准在车辆软件架构中发挥着越来越重要的作用。然而,传统的ARXML文件处理工具往往存在高昂的许可费用、封闭的数据格式和复杂的使用门槛等问题。本文介绍一种基于TXT格式输出的ARXML解析方案,为开发团队提供了一个高效的替代解决方案。 …

2026-2030工业发展解读系列:PLM/PDM系统解析报告(预览版)

1 PLM系统的核心价值与功能定位 PLM是一种贯穿产品全生命周期的战略性数字化工具&#xff0c;覆盖从概念设计、研发、生产到退市的全流程管理。 PLM系统功能模块包含数据管理、流程协同、项目管控等核心&#xff0c;支持从三维设计到生产制造的全链条数字化协同。 1.1数据管…

Go语言中的rune和byte类型详解

1. rune类型 1.1. 基本概念 1. rune是Go语言的内建类型&#xff0c;它是int32的别名&#xff0c;即32位有符号整数&#xff1b; 2. 用于表示一个Unicode码点&#xff0c;全拼Unicode code point&#xff1b; 3. 可以表示任何UTF-8编码的字符&#xff1b; 1.2. 特点 1. 每…

【中国・珠海】2025 物联网与边缘计算国际研讨会(IoTEC2025)盛大来袭!

2025 物联网与边缘计算国际研讨会&#xff08;IoTEC2025&#xff09;盛大来袭&#xff01; 科技浪潮奔涌向前&#xff0c;物联网与边缘计算已成为驱动各行业变革的核心力量。在此背景下&#xff0c;2025 物联网与边缘计算国际研讨会&#xff08;IoTEC2025&#xff09;即将震撼…

Photoshop使用钢笔绘制图形

1、绘制脸部路径 选择钢笔工具&#xff0c;再选择“路径”。 基于两个点绘制一个弯曲的曲线 使用Alt键移动单个点&#xff0c;该点决定了后续的曲线方向 继续绘制第3个点 最后一个点首尾是同一个点&#xff0c;使用钢笔保证是闭合回路。 以同样的方式绘制2个眼睛外框。 使用椭…

# 使用 Selenium 爬取苏宁易购优质评价

使用 Selenium 爬取苏宁易购优质评价 在数据挖掘和网络爬虫领域&#xff0c;Selenium 是一个强大的工具&#xff0c;尤其适合处理动态网页内容。本文将通过一个实际案例&#xff0c;展示如何使用 Selenium 爬取苏宁易购上的优质评价&#xff0c;并将这些评价保存到本地文件中。…

Windows上用FFmpeg推流及拉流的流程概览

1. 视频采集与推流&#xff08;Windows FFmpeg&#xff09; 采集设备&#xff1a;Windows上的摄像头&#xff0c;比如“Integrated Camera”。 采集方式&#xff1a;FFmpeg通过 dshow 设备接口读取摄像头。 推流协议&#xff1a;你可以选择推到 RTMP 或 RTSP 服务器。 推流…