您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
4_数据库连接池_c3p0_基本使用
发布时间:2022-07-19 23:03:17编辑:雪饮阅读()
Java与数据库之间建立连接后使用了之后就立即销毁,这样在一些场景下是不合适的,频繁的创建连接,对服务器是造成了资源浪费的。
连接池就是解决该问题的一个技术。
c3p0是连接池技术的其中一种实现方式。
首先要导入c3p0-0.9.5.2.jar和mchange-commons-java-0.2.12.jar到libray中,其中这个mchange-commons-java-0.2.12.jar好像是c3p0-0.9.5.2.ja的依赖。
同样的jdbc驱动仍旧是需要的,mysql-connector-java-5.1.37-bin.jar也需要导入到libray中。
c3p0配置文件有两种方式,其一种是xml的。
那么默认读取的xml文件名是c3p0-config.xml,要将其放置于如src目录,其内容一般如:
<c3p0-config>
<!-- 使用默认的配置读取连接池对象 -->
<default-config>
<!-- 连接参数 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<property name="user">root</property>
<property name="password">root</property>
<!-- 连接池参数 -->
<!--初始化连接数量-->
<property name="initialPoolSize">5</property>
<!--当前(该配置文件中可以有多个连接池配置)连接池最大连接数-->
<property name="maxPoolSize">10</property>
<!--
一个连接创建过程多久算超时(比如主机名填错了,那个这个连接一直创建不成功也不行,要配置一个创建连接超时时间)
(我觉得应该不仅仅只是指这个超时时间吧,可能也会影响到比如某个连接多久没有使用就自动回收之类的)
-->
<property name="checkoutTimeout">3000</property>
</default-config>
<named-config name="otherc3p0">
<!-- 连接参数 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/day25</property>
<property name="user">root</property>
<property name="password">root</property>
<!-- 连接池参数 -->
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">8</property>
<property name="checkoutTimeout">1000</property>
</named-config>
</c3p0-config>
那么接下来c3p0数据库连接池的具体使用则如:PoolTest.java:
package day6;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
public class PoolTest {
public static void main(String args[]) throws SQLException {
//创建数据库连接池对象
DataSource ds=new ComboPooledDataSource();
//获取连接对象
Connection conn=ds.getConnection();
System.out.println(conn);
}
}
关键字词:c3p0,连接池
相关文章
-
无相关信息