太好了!下面是一个完整的基于 Spring Boot + JPA 的 RESTful CRUD 示例项目,重点展示 @GetMapping@PostMapping@PutMapping@DeleteMapping@PatchMapping 的使用。


✅ 示例项目结构

springboot-crud/
├── Application.java
├── controller/
│   └── UserController.java
├── entity/
│   └── User.java
├── repository/
│   └── UserRepository.java
├── service/
│   └── UserService.java
└── resources/
    └── application.yml

☕ 1. Application.java – 启动类

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

👤 2. User.java – 实体类

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;
    private String email;

    // Getters & Setters
}

🗃️ 3. UserRepository.java – JPA 接口

public interface UserRepository extends JpaRepository<User, Long> {
}

💼 4. UserService.java – 业务逻辑

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;

    public List<User> findAll() {
        return userRepository.findAll();
    }

    public User findById(Long id) {
        return userRepository.findById(id).orElse(null);
    }

    public User save(User user) {
        return userRepository.save(user);
    }

    public User update(Long id, User newUser) {
        User user = findById(id);
        if (user == null) return null;
        user.setName(newUser.getName());
        user.setEmail(newUser.getEmail());
        return userRepository.save(user);
    }

    public void delete(Long id) {
        userRepository.deleteById(id);
    }

    public User patch(Long id, Map<String, Object> updates) {
        User user = findById(id);
        if (user == null) return null;
        if (updates.containsKey("name")) user.setName((String) updates.get("name"));
        if (updates.containsKey("email")) user.setEmail((String) updates.get("email"));
        return userRepository.save(user);
    }
}

🌐 5. UserController.java – 控制器

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

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

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

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userService.save(user);
    }

    @PutMapping("/{id}")
    public User updateUser(@PathVariable Long id, @RequestBody User user) {
        return userService.update(id, user);
    }

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

    @PatchMapping("/{id}")
    public User patchUser(@PathVariable Long id, @RequestBody Map<String, Object> updates) {
        return userService.patch(id, updates);
    }
}

⚙️ 6. application.yml – 数据源配置

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo?useSSL=false&serverTimezone=UTC
    username: root
    password: 123456
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

🧪 7. 测试接口(Postman/浏览器)

操作方法路径说明
查询全部GET/users获取所有用户
查询单个GET/users/{id}根据 ID 获取用户
新增POST/users创建用户
修改PUT/users/{id}修改用户
删除DELETE/users/{id}删除用户
局部更新PATCH/users/{id}局部修改字段

如需完整代码打包(或生成 .zip 项目),也可以告诉我,我可以直接为你打包项目源码。

你想使用 Maven 构建还是 Gradle?是否需要我也帮你生成完整的 pom.xml