AI 辅助学习:Spring Boot 集成 PostgreSQL 并设置最大连接数-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

大家好我是伍六七。

阿七之前有一次接手了同事写的代码他使用 Spring Boot 集成了 PostgreSQL。结果我在线上发布的时候DBA 给我报警说连接数超了每个机器连接数都是 100。

但是我没用过 PostgreSQL 呀怎么办这个不解决的话其他需求的发布就会受影响。

这个时候我想到了最近爆火的 GPT。我赶紧问它。

我正在使用 spring boot 连接 PostgreSQL 数据库我需要限制连接数据库的最小和最大连接数怎么实现

要求

1、使用 Spring Boot 项目

2、给出数据库配置、连接池配置、Java实现的代码

3、使用 apache 数据库连接池 datasource 配置

一轮的回复可能并不能完全满足我们的要求针对不同的问题可以多问几轮。

整理之后的答复如下

要限制连接数据库的最小和最大连接数可以通过在 Spring Boot 项目中配置数据源和连接池来实现。以下是实现的步骤

  1. 添加依赖在 pom.xml 文件中添加 PostgreSQL 和 Apache 数据库连接池的依赖。
<dependencies>
    <!-- PostgreSQL依赖 -->
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>版本号</version>
    </dependency>
    <!-- Apache数据库连接池依赖 -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-dbcp2</artifactId>
        <version>版本号</version>
    </dependency>
</dependencies>
  1. 配置数据源和连接池在 application.properties 或 application.yml 文件中配置数据源和连接池的相关属性。

application.properties配置示例

spring.datasource.url=jdbc:postgresql://localhost:5432/mydatabase
spring.datasource.username=myusername
spring.datasource.password=mypassword
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.initial-size=5
spring.datasource.max-total=20

application.yml配置示例

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/mydatabase
    username: myusername
    password: mypassword
    driver-class-name: org.postgresql.Driver
    initial-size: 5
    max-total: 20
  1. 创建数据源 bean在 Spring Boot 的配置类中创建数据源 bean并将其注入到应用程序中。
import org.apache.commons.dbcp2.BasicDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;

@Configuration
public class DataSourceConfig {

@Value("${spring.datasource.username}")
    private String username;
    @Value("${spring.datasource.password}")
    private String password;
    @Value("${spring.datasource.url}")
    private String url;
    @Value("${spring.datasource.driver-class-name}")
    private String driver;
    @Value("${spring.datasource.max-total}")
    private int maxActive;
    @Value("${spring.datasource.initial-size}")
    private int inititalSize;
    
    
    @Bean
    public DataSource dataSource() {
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        dataSource.setDriverClassName(driver);
        dataSource.setInitialSize(inititalSize);
        dataSource.setMaxTotal(maxActive);
        return dataSource;
    }
    
    @Bean(name = "pgJdbcTemplate")
    public JdbcTemplate jdbcTemplate(@Qualifier("pgDataSource") DataSource pgDataSource) {
        return new JdbcTemplate(pgDataSource);
    }
}

通过以上步骤你可以在Spring Boot项目中使用Apache数据库连接池配置数据源并限制连接数据库的最小和最大连接数。

  1. 在你的应用程序中使用 JdbcTemplate。在你的应用程序中使用 @Resource 注解将 JdbcTemplate 注入到你的服务或 DAO 类中并使用它来执行数据库操作。例如
@Service
public class MyService {

    @Resource
    private JdbcTemplate pgJdbcTemplate;

    public void doSomething() {
        // 使用dataSource执行数据库操作
        pgJdbcTemplate.queryForObject(sql, Integer.class, username, time)
    }
}
  1. 运行应用程序并观察日志输出。启动你的应用程序并观察应用程序的日志输出。如果 maxActive 属性生效你应该能够在日志中看到与数据库连接池相关的信息例如连接池的最大活动连接数。

通过以上步骤你可以验证 application.yml 中的 maxActive 属性是否生效。如果你在日志中看到了与 maxActive 属性相关的信息那么说明该属性已成功生效。

如果没有看到相关信息可能是配置有误或其他原因导致属性未生效你可以检查配置是否正确并查看其他可能的错误信息。

对于原来使用搜索引擎这个效率真的是提高了不知道多少倍阿七刚好就这个问题在搜索引擎搜索了好久都没找到正确答案还是 GPT 牛逼

大家赶紧用起来吧


关注我送你全套我整理的 Java 岗位面试资料。这是我自己之前整理的面试题靠着这份面试题我从 30 人的小公司进了 2000 人+的央企子公司之后又进了互联网大厂。

一份让我进大厂&央企的面试题

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Spring