太好了!下面是一个完整的基于 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
?
发表回复