连接池问题

来源:1-2 Spring JDBC配置过程

慕的地5481427

2022-06-12 23:26:18

Spring-jdbc没有连接池这个功能嘛?
写回答

1回答

好帮手慕小尤

2022-06-13

同学你好,1、是有的连接池的,不过DriverManagerDataSource没有实现连接池化连接的机制,每次调用getConnection()获取新连接时,只是简单地创建一个新的连接。

2、可以用c3p0连接池,如下所示:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="driverClass" value="com.mysql.cj.jdbc.Driver" />
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/imooc?characterEncoding=UTF8" />
        <property name="user" value="***" />
        <property name="password" value="***" />
</bean>

常用属性如下所示:                                                                       

    acquireIncrement:当连接池中的连接用完时,C3P0一次性创建新连接的数目。默认值:5

    acquireRetryAttempts:定义在从数据库获取新连接失败后重复尝试获取的次数。默认值:30

    checkoutTimeout:当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出SQLException,如设为0则无限期等待。单位毫秒 ,默认值: 0

    initialPoolSize:初始化时创建的连接数,应在minPoolSize与maxPoolSize之间取值 。默认值: 3

    maxIdleTime:最大空闲时间,超过空闲时间的连接将被丢弃。为0或负数则永不丢弃。默认值:0

    maxPoolSize:连接池中保留的最大连接数。默认值:15

祝学习愉快!

0

0 学习 · 9886 问题

查看课程