数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。这样的好处是节省了应用频繁建立关闭数据库连接的开销,同时也统一了数据库连接的资源,便于管理。当然还有很多其它高级功能比如动态资源控制,连接检测等。连接池运用得好,将大大提高应用的开发和运行效率。
目前金仓数据库常用的数据库连接池有DBCP、C3P0和Druid三种,下面将对这三种连接池与Spring和SpringBoot整合使用的配置进行简单说明。
一、金仓配置DBCP说明
DBCP数据库连接池是apache上的一个Java连接池项目。DBCP通过连接池预先同数据库建立一些连接放在内存中(即连接池中),应用程序需要建立数据库连接时直接从连接池中申请一个连接使用,用完后由连接池回收该连接,从而达到连接复用、减少资源消耗的目的,下面将根据实际案例介绍金仓数据库搭配DBCP的使用说明。
1、使用Spring整合DBCP配置金仓数据源
Spring可以通过application.xml配置bean的方式来设置数据源,下面是配置金仓数据源的配置例子。关键是配置金仓驱动类名字和连接串,其它参数请参照例子中的注释,更多请参考官网介绍。
<bean id="dataSource_dbcp"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<!—金仓JDBC驱动类名字 -->
<property name="driverClassName" value="com.kingbase8.Driver" />
<!—金仓JDBC连接串 -->
<property name="url" value="jdbc:kingbase8://127.0.0.1:54321/TEST" />
<property name="username" value="SYSTEM" />
<property name="password" value="123456" />
<property name="initialSize" value="10" />
<property name="maxActive" value="50" />
<property name="minIdle" value="5" />
<!-- 空闲连接回收线程运行的时间间隔,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="1800000" />
<!--连接有效性检测-->
<property name="validationQuery" value="SELECT 1" />
</bean>
2、使用Springboot整合DBCP配置金仓数据源
这里使用maven导入依赖包,通过Springboot的配置文件配置数据源。
(1)第一步导入金仓JDBC驱动和DBCP依赖包
<!—dbcp中间件 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
</dependency>
<!—金仓JDBC驱动包 -->
<dependency>
<groupId>com.kingbase8</groupId>
<artifactId>kingbase8</artifactId>
<version>8.2.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/kingbase8-8.2.0.jar</systemPath>
</dependency>
(2)第二步通过配置文件来配置DBCP和金仓数据源
Springboot有两种配置方式,第一种是application.yml配置文件,第二种是application.properties配置文件。下面分别介绍两种配置方式配置金仓的方式。
第一种:通过application.yml文件配置DBCP和金仓数据源
spring:
# DBCP的金仓数据源配置
datasource:
type: org.a