SpringBoot依赖之PostgreSQL Driver集成

概念PostgreSQL Driver

PostgreSQL 是一个强大、开源的对象关系型数据库管理系统(ORDBMS),适用于大数量处理、复杂的应用程序、数据分析和BI、金融以及电子商务领域。

PostgreSQL Driver
  • 依赖名称: PostgreSQL Driver
  • 功能描述: A JDBC and R2DBC driver that allows Java programs to connect to a PostgreSQL database using standard, database independent Java code.
  • 英文释义:JDBC 和 R2DBC 驱动程序,允许 Java 程序使用标准的、独立于数据库的 Java 代码连接到 PostgreSQL 数据库。

我们在 IntelliJ IDEA 中创建 Spring Boot 项目并集成 PostgreSQL 数据库的步骤如下:

1. 创建 Spring Boot 项目

  1. 启动 IntelliJ IDEA,点击 New Project,选择 Spring Initializr,然后点击 Next
    在这里插入图片描述
    项目信息可参考之前文章配置,也可以采用IDEA的默认配置。目前我的Springboot 版本3.3,jdk版本17。项目依赖包如上图所示,根据需要引用。
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

2. 配置 PostgreSQL 数据库

  1. 在 PostgreSQL 中创建数据库

    • 打开 PostgreSQL 数据库客户端(如 pgAdmin 或命令行工具),执行以下命令创建一个新数据库:

      CREATE DATABASE springboot_db;
      
  2. 配置 application.properties 文件

    • src/main/resources/application.properties 文件中添加以下配置:

      spring.datasource.url=jdbc:postgresql://localhost:5432/springboot_db
      spring.datasource.username=your_username
      spring.datasource.password=your_password
      spring.datasource.driver-class-name=org.postgresql.Driver
      
      spring.jpa.hibernate.ddl-auto=update
      spring.jpa.show-sql=true
      spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
      
    • 这些是数据库连接中最核心的几个参数,根据实际情况将 your_usernameyour_password 替换为 PostgreSQL 数据库的用户名和密码。

3. 创建实体类和数据库操作

  1. 创建实体类

    • 具体的包目录可以参考我这个

      package com.dependencies.springdatajpapostgresql.model;
      
         import jakarta.persistence.Entity;
         import jakarta.persistence.GeneratedValue;
         import jakarta.persistence.GenerationType;
         import jakarta.persistence.Id;
         import lombok.Data;
         
         /**
          * @author zhizhou   2024/8/28 09:08
          */
         @Data
         @Entity
         public class User {
             @Id
             @GeneratedValue(strategy = GenerationType.IDENTITY)
             private Long id;
             private String name;
             private String email;
         }
      
  2. 创建 Repository 接口

    package com.dependencies.springdatajpapostgresql.repository;
    
    import com.dependencies.springdatajpapostgresql.model.User;
    import org.springframework.data.jpa.repository.JpaRepository;
    
    /**
    * @author zhizhou   2024/8/28 09:09
    */
    public interface UserRepository extends JpaRepository<User, Long> {
    
    }
    
  3. 创建控制器UserController

    package com.dependencies.springdatajpapostgresql.controller;
    
    import com.dependencies.springdatajpapostgresql.model.User;
    import com.dependencies.springdatajpapostgresql.repository.UserRepository;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.http.ResponseEntity;
    import org.springframework.web.bind.annotation.*;
    
    import java.util.List;
    import java.util.Optional;
    /**
    * @author zhizhou   2024/8/28 09:10
    */
    @RestController
    @RequestMapping("/users")
    public class UserController {
       
       @Autowired
       private UserRepository userRepository;
       
       // 1. 获取所有用户
       @GetMapping
       public List<User> getAllUsers() {
           return userRepository.findAll();
       }
       
    

4. 运行项目并测试

  1. 运行 Spring Boot 应用

    • 右键点击 SpringDataJpaPostgresqlApplication 主类,选择 Run
  2. 测试 API

    • 使用 Postman 或浏览器也可以,类似请求工具,访问 http://localhost:8080/users 来测试 API。

总结

通过这些步骤,我们已经在 IntelliJ IDEA 中成功创建了一个 Spring Boot 项目,并集成了 PostgreSQL 数据库。该项目包括基本的数据库操作和 RESTful API,可以根据需要进行扩展和优化。

Spring Boot 3.2集成PostgreSQL可以按照以下步骤进行: ### 1. 创建Spring Boot项目 可以使用Spring Initializr(https://start.spring.io/ )来创建一个新的Spring Boot项目。在依赖项中添加以下必要的依赖: - Spring Data JPA:用于数据库访问。 - PostgreSQL Driver:用于连接PostgreSQL数据库。 ### 2. 配置数据库连接 在`application.properties`或`application.yml`文件中配置PostgreSQL数据库连接信息。 #### 使用`application.properties` ```properties # 数据库连接URL,对于PostgreSQL 9.4及以后的版本可指定模式 spring.datasource.url=jdbc:postgresql://localhost:5432/postgres?currentSchema=newschema spring.datasource.username=postgres spring.datasource.password=password # 连接池配置 spring.datasource.hikari.connectionTimeout=20000 spring.datasource.hikari.maximumPoolSize=5 # JPA配置 # 开发测试时可使用create,生产环境建议注释掉 spring.jpa.hibernate.ddl-auto=create spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect ``` #### 使用`application.yml` ```yaml spring: datasource: url: jdbc:postgresql://localhost:5432/postgres?currentSchema=newschema username: postgres password: password hikari: connectionTimeout: 20000 maximumPoolSize: 5 jpa: hibernate: ddl-auto: create show-sql: true properties: hibernate: dialect: org.hibernate.dialect.PostgreSQLDialect ``` ### 3. 创建实体类 创建与数据库表对应的实体类,使用JPA注解来映射数据库表和字段。例如: ```java 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. 创建Repository接口 创建一个继承自`JpaRepository`的接口,用于对数据库进行CRUD操作。 ```java import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository<User, Long> { } ``` ### 5. 使用Repository进行数据库操作 在服务类或控制器中注入`UserRepository`并使用它进行数据库操作。 ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserService { @Autowired private UserRepository userRepository; public List<User> getAllUsers() { return userRepository.findAll(); } public User saveUser(User user) { return userRepository.save(user); } } ``` ### 6. 测试集成 可以编写测试用例来验证Spring Boot 3.2与PostgreSQL集成是否成功。 ```java import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.List; import static org.junit.jupiter.api.Assertions.assertNotNull; @SpringBootTest public class UserServiceTest { @Autowired private UserService userService; @Test public void testGetAllUsers() { List<User> users = userService.getAllUsers(); assertNotNull(users); } } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一周一志程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值