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
英文地址,請注明出處:http://en.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 服務器。 推流…