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开发和数据库交互打下了良好的基础。在后续的学习中,可以扩展更多的功能,如数据验证、异常处理、前端交互等。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部