📁 示例项目结构(基于 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;
}
🧩 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 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.java
和 UserServiceImpl.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 { @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
@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
spring : datasource : url : jdbc: mysql: //localhost: 3306/user_db? useSSL=false&serverTimezone=UTC username : rootpassword : yourpassworddriver-class-name : com.mysql.cj.jdbc.Drivermybatis : mapper-locations : classpath: mapper/*.xml type-aliases-package : com.example.usermanagement.entity
🚀 UserManagementApplication.java
@SpringBootApplication
public class UserManagementApplication { public static void main ( String [ ] args) { SpringApplication . run ( UserManagementApplication . class , args) ; }
}