📁 示例项目结构(基于 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 : 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
@SpringBootApplication
public class UserManagementApplication {
public static void main ( String [ ] args) {
SpringApplication . run ( UserManagementApplication . class , args) ;
}
}