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

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.xdnf.cn/news/10552.html

相关文章:

  • AI 医疗影像诊断:技术实现、临床应用与未来趋势 —— 以肺部 CT 早期肺癌检测为例
  • 文言文停词库 | 古文停词库 | 624个简体停词 |文言文python分词库-thulac
  • Baklib知识中台加速企业服务智能化实践
  • 达梦分布式集群DPC_分布式事务理解_yxy
  • 机器学习算法-k-means
  • LeetCode 40.组合总和II:含重复元素的组合问题去重策略详解
  • 生物化学笔记:神经生物学概论【脑客中国·科研】第186位讲者 | 何超:大脑的觉醒与睡眠
  • LCA(最近公共祖先)与树上差分
  • 【Dv3Admin】工具异常处理配置文件解析
  • 智能指针unique
  • 【MySQL】第13节|MySQL 中模糊查询的全面总结
  • Codeforces Round 1028 (Div. 2)(ABC)
  • JAVA实战开源项目:精简博客系统 (Vue+SpringBoot) 附源码
  • Python打卡训练营Day42
  • 阻塞队列BlockingQueue解析
  • Window系统程序加入白名单
  • LangChain-结合智谱AI大模型实现自定义tools应用实例
  • 吴恩达MCP课程(4):connect_server_mcp_chatbot
  • springboot中@Async做异步操作(Completable异步+ThreadPoolTaskExecutor线程池+@Async注解)
  • shp转3d tiles在cesium渲染楼宇白膜
  • Linux 驱动之设备树
  • Leetcode 2093. 前往目标城市的最小费用
  • SAR ADC 异步逻辑设计
  • Linux系统配置屏幕旋转和触摸旋转
  • 从冷上电到main()函数,Bootloader都做了什么?
  • 数据类型检测有哪些方式?
  • robot_lab学习笔记【MDP综述】
  • QuickJS 如何计算黄金分割率 ?
  • barker-OFDM模糊函数原理及仿真
  • Linux防火墙:全面解析IPTables的表、链、规则!