文档用途
讲解常用的并且需要与数据库进行交互的开源框架C3P0,以及C3P0框架是如何适配HGDB的。
详细信息
1.C3P0概述
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。
2.C3P0使用
Maven项目中c3p0依赖,pom.xm文件配置如下:
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.2.1</version>
</dependency>
<dependency>
<groupId>highgo</groupId>
<artifactId>highgo</artifactId>
<version>5.0-42</version>
</dependency>
在以spring、mybatis、c3p0为框架搭建的项目案例中,spring配置文件中,c3p0部分连接参数示例,如下:
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource" >
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="driverClass" value="${jdbc.driverClassName}"/>
<!-- 连接池中保留的最大连接数。默认值: 15 -->
<property name="maxPoolSize" value="20"/>
<!-- 连接池中保留的最小连接数,默认为:3 -->
<property name="minPoolSize" value="2"/>
<!-- 初始化连接池中的连接数,取值应在minPoolSize与maxPoolSize之间,默认为3 -->
<property name="initialPoolSize" value="2"/>
<!-- 最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。默认值: 0 -->
<property name="maxIdleTime" value="60"/>
</bean>
C3P0详细参数请查询官网:https://www.mchange.com/projects/c3p0/
Java框架中的配置参数为了维护方便、便于阅读,一般把一些参数放在配置文件中;比如在此案例下,把HGDB的连接参数放在了jdbc.properties文件下,在spring配置文件中使用 j d b c . u r l , {jdbc.url}, jdbc.url,{jdbc.username}, j d b c . p a s s w o r d , {jdbc.password}, jdbc.password,{jdbc.driverClassName}来引用这些参数;在spring配置文件中还有个引入配置文件的配置,如下:
<!-- 引入配置文件 -->
<context:property-placeholder location="classpath:jdbc.properties"/>
这样spring就会按照配置寻找jdbc.properties中的jdbc.url,jdbc.username,jdbc.password,jdbc.driverClassName这四个参数;
jdbc.properties中的内容,如下:
jdbc.url=jdbc:highgo://127.0.0.1:5866/myhgdb
jdbc.driverClassName=com.highgo.jdbc.Driver
jdbc.username=myuser
jdbc.password=my123
目前使用比较多的配置文件基本都是以 .xml、.properties、.yml等结尾,其中还有的在java类中设置参数值。
C3P0适配HGDB就是把c3p0的数据库连接参数改为HGDB的连接参数,如图6.2,只要把jdbc.url、jdbc.driverClassName、jdbc.username、jdbc.password修改为HGDB的连接参数即可。