Spring Boot 3 集成 PostgreSQL 的详细教程

Spring Boot 是一个开源的 Java基础项目,主要用于简化 Spring 应用程序的初始设置和开发过程。PostgreSQL 是一个功能强大的开源关系型数据库管理系统,常用于构建数据密集型应用程序。将这两者结合在一起,可以高效地开发出性能优越的应用程序。本文将介绍如何在 Spring Boot 3 中集成 PostgreSQL,完成一个简单的 CRUD 示例。

1. 创建 Spring Boot 项目

可以使用 Spring Initializr 创建一个新的 Spring Boot 项目。在 Spring Initializr 上选择以下配置:

  • Project: Maven Project
  • Language: Java
  • Spring Boot: 3.x.x
  • Dependencies: 添加 "Spring Web", "Spring Data JPA", "PostgreSQL Driver"

下载生成的项目并解压,然后使用您喜欢的 IDE(如 IntelliJ IDEA 或 Eclipse)打开项目。

2. 配置 application.properties

src/main/resources/application.properties 中,添加 PostgreSQL 的数据库配置:

spring.datasource.url=jdbc:postgresql://localhost:5432/your_database_name
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

确保你根据自己的数据库信息替换上述内容。请注意,ddl-auto 设置为 update 意味着应用启动时将自动更新数据库结构。

3. 创建实体类

src/main/java/com/example/demo/model 目录下创建一个名为 User 的实体类:

package com.example.demo.model;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.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;
    }
}

4. 创建仓库接口

src/main/java/com/example/demo/repository 目录下创建一个名为 UserRepository 的接口:

package com.example.demo.repository;

import com.example.demo.model.User;
import org.springframework.data.jpa.repository.JpaRepository;

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

5. 创建服务类

src/main/java/com/example/demo/service 目录下创建一个名为 UserService 的类:

package com.example.demo.service;

import com.example.demo.model.User;
import com.example.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

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

    public Optional<User> findById(Long id) {
        return userRepository.findById(id);
    }

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

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

6. 创建控制器

src/main/java/com/example/demo/controller 目录下创建一个名为 UserController 的类:

package com.example.demo.controller;

import com.example.demo.model.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

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

    @Autowired
    private UserService userService;

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

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

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

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

7. 启动应用程序

确保 PostgreSQL 数据库已启动,并且已创建名为 your_database_name 的数据库。然后,在项目根目录下使用以下命令启动 Spring Boot 应用程序:

mvn spring-boot:run

8. 测试接口

您可以使用 Postman 或 curl 测试 CRUD 接口。

  • 获取所有用户: GET http://localhost:8080/users
  • 根据 ID 获取用户: GET http://localhost:8080/users/{id}
  • 创建用户: POST http://localhost:8080/users,请求体为 JSON 格式,如 {"name": "John", "email": "john@example.com"}
  • 删除用户: DELETE http://localhost:8080/users/{id}

结语

通过上述步骤,我们成功地将 Spring Boot 3 与 PostgreSQL 集成,创建了基本的 CRUD 接口。可以根据需要扩展更多功能,包括数据验证、异常处理和安全性配置等。希望本教程能对你的开发工作有所帮助!

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部