连接池问题
来源:1-2 Spring JDBC配置过程
慕的地5481427
2022-06-12 23:26:18
1回答
同学你好,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
祝学习愉快!
相似问题