文章目录
- 文档用途
- 详细信息
文档用途
讲解常用的并且需要与数据库进行交互的开源框架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配置文件中使用jdbc.url,{jdbc.url},jdbc.url,{jdbc.username},jdbc.password,{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/myhgdbjdbc.driverClassName=com.highgo.jdbc.Driverjdbc.username=myuserjdbc.password=my123
目前使用比较多的配置文件基本都是以 .xml、.properties、.yml等结尾,其中还有的在java类中设置参数值。
C3P0适配HGDB就是把c3p0的数据库连接参数改为HGDB的连接参数,如图6.2,只要把jdbc.url、jdbc.driverClassName、jdbc.username、jdbc.password修改为HGDB的连接参数即可。