C3P0使用

数据库连接池

  • 在系统初始化时准备一定数量的连接
  • 使用时进行请求,使用后归还
    好处:避免频繁创建和销毁请求,提高响应速度
    一般,不会自己写数据库连接池,而是采用第三方数据库厂商的:比如C3P0和阿里巴巴的Druid(德鲁伊)。
    注意:使用第三方数据库连接池仍然要导入对应版本的mysql的jar包
    在javax.sql下提供了一个DataSource接口来制定标准。

C3P0

1、配置pom.xml
c3p0有两个jar包

<dependency>
  <groupId>com.mchange</groupId>
  <artifactId>mchange-commons-java</artifactId>
  <version>0.2.12</version>
</dependency>
<dependency>
  <groupId>com.mchange</groupId>
  <artifactId>c3p0</artifactId>
  <version>0.9.5.2</version>
</dependency>

2、配置文件
两种形式:xml和properties均可,建议命名为c3p0-config.xml和c3p0.properties。有时候测试会默认加载,但有时加载无效。可以考虑直接指定。
简单来说就是配置四个属性:user、password、driverClass、jdbcUrl
(1)c3p0-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
    <default-config>
        <property name="user">root</property>
        <property name="password">3145tj</property>
        <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/study?useSSL=false&amp;serverTimezone=UTC&amp;characterEncoding=utf8</property>
    </default-config>
</c3p0-config>

(2)c3p0.properties

user=root
password=3145tj
driverClass=com.mysql.cj.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/study?useSSL=false&amp;serverTimezone=UTC&amp;characterEncoding=utf8

3、主要代码

DataSource dataSource = new ComboPooledDataSource();
Connection connection = dataSource.getConnection();

4、不用配置文件,直接代码设置相关属性

DataSource dataSource = new ComboPooledDataSource();
((ComboPooledDataSource) dataSource).setDriverClass("");
((ComboPooledDataSource) dataSource).setUser("");
((ComboPooledDataSource) dataSource).setPassword("");
((ComboPooledDataSource) dataSource).setJdbcUrl("");
Connection connection = dataSource.getConnection();

spring配置

<!-- 配置c3p0连接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <!-- 注入属性值 -->
    <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
    <property name="jdbcUrl" value="jdbc:mysql:///spring_day03"></property>
    <property name="user" value="root"></property>
    <property name="password" value="root"></property>
</bean>
posted @ 2020-10-12 01:28  黑白猫123  阅读(140)  评论(0编辑  收藏  举报