Spring Boot Web增删改查入门案例
随着Java技术的发展,Spring Boot作为一个快速开发框架,已成为构建Web应用的重要选择。本文将通过一个简单的增删改查(CRUD)案例,带领大家快速上手Spring Boot Web应用开发。
1. 项目结构
首先,我们需要构建一个Spring Boot项目。可以利用Spring Initializr(https://start.spring.io/)生成骨架项目,选择依赖项如Spring Web、Spring Data JPA、H2 Database(或MySQL)等。
生成的项目结构如下:
spring-boot-crud/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── crud/
│ │ │ ├── CrudApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── model/
│ │ │ │ └── User.java
│ │ │ └── repository/
│ │ │ └── UserRepository.java
│ │ └── resources/
│ │ └── application.properties
└── pom.xml
2. 实体类 User
在model
包中,我们定义一个用户实体类User
。
package com.example.crud.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// getters and setters
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
3. 创建用户仓库
在repository
包中,我们创建一个接口UserRepository
,继承自JpaRepository
,用于数据操作。
package com.example.crud.repository;
import com.example.crud.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
}
4. 编写控制器
在controller
包中,我们创建UserController
类,提供RESTful API实现CRUD功能。
package com.example.crud.controller;
import com.example.crud.model.User;
import com.example.crud.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserRepository userRepository;
@GetMapping
public List<User> getAllUsers() {
return userRepository.findAll();
}
@PostMapping
public User createUser(@RequestBody User user) {
return userRepository.save(user);
}
@PutMapping("/{id}")
public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User userDetails) {
User user = userRepository.findById(id).orElseThrow(() -> new RuntimeException("User not found"));
user.setName(userDetails.getName());
user.setEmail(userDetails.getEmail());
User updatedUser = userRepository.save(user);
return ResponseEntity.ok(updatedUser);
}
@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
User user = userRepository.findById(id).orElseThrow(() -> new RuntimeException("User not found"));
userRepository.delete(user);
return ResponseEntity.noContent().build();
}
}
5. 配置文件
在src/main/resources/application.properties
中,配置数据库信息(如果使用H2,可直接使用内存数据库,不需要额外配置)。
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
6. 测试接口
启动Spring Boot应用后,可以使用Postman等工具测试以下接口:
- GET
/api/users
:获取所有用户 - POST
/api/users
:创建用户, body 示例:json { "name": "John Doe", "email": "john@example.com" }
- PUT
/api/users/{id}
:更新用户, body 示例:json { "name": "Jane Doe", "email": "jane@example.com" }
- DELETE
/api/users/{id}
:删除用户
结论
通过上述简单的示例,我们成功构建了一个基于Spring Boot的Web应用,实现了基本的CRUD操作。这个基础案例为深入学习Spring Boot,尤其是Web开发和数据库交互打下了良好的基础。在后续的学习中,可以扩展更多的功能,如数据验证、异常处理、前端交互等。