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(实体类)

java 复制代码
package com.example.usermanagement.entity;

public class User {
    private Integer id;
    private String name;
    private String email;

    // Getters & Setters
}

🧩 UserMapper.java(Mapper 接口)

java 复制代码
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 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//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

java 复制代码
public interface UserService {
    User getUserById(Integer id);
    List<User> getAllUsers();
    void addUser(User user);
    void updateUser(User user);
    void deleteUser(Integer id);
}
java 复制代码
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private 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

java 复制代码
@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public User getUser(@PathVariable Integer id) {
        return userService.getUserById(id);
    }

    @GetMapping
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

    @PostMapping
    public void addUser(@RequestBody User user) {
        userService.addUser(user);
    }

    @PutMapping
    public void updateUser(@RequestBody User user) {
        userService.updateUser(user);
    }

    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable Integer id) {
        userService.deleteUser(id);
    }
}

⚙️ application.yml

yaml 复制代码
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/user_db?useSSL=false&serverTimezone=UTC
    username: root
    password: yourpassword
    driver-class-name: com.mysql.cj.jdbc.Driver

  mybatis:
    mapper-locations: classpath:mapper/*.xml
    type-aliases-package: com.example.usermanagement.entity

🚀 UserManagementApplication.java

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

相关推荐
程序员爱钓鱼35 分钟前
Go语言实战案例-创建模型并自动迁移
后端·google·go
javachen__40 分钟前
SpringBoot整合P6Spy实现全链路SQL监控
spring boot·后端·sql
uzong6 小时前
技术故障复盘模版
后端
GetcharZp7 小时前
基于 Dify + 通义千问的多模态大模型 搭建发票识别 Agent
后端·llm·agent
桦说编程7 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
IT毕设实战小研7 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
wyiyiyi7 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
记忆不曾留7 小时前
Mybatis 源码解读-SqlSession 会话源码和Executor SQL操作执行器源码
mybatis·二级缓存·sqlsession会话·executor执行器·一级缓存localcache
一只爱撸猫的程序猿8 小时前
使用Spring AI配合MCP(Model Context Protocol)构建一个"智能代码审查助手"
spring boot·aigc·ai编程
甄超锋8 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat