JDBC 多种数据库连接池C3P0 DBCP Druid 连接演示

10 篇文章 42 订阅
4 篇文章 0 订阅

前排提示, 如果官网下载的速度太慢, 可以用文末我提供的链接


目录

1.C3P0

使用前准备:

方式一:硬编码(数据库配置写进代码里)

方式二:写配置文件, 代码和配置分离(开发推荐)

2.DBCP

使用前准备:

 方式一:硬编码(数据库配置写进代码里)

方式二:写配置文件, 代码和配置分离(开发推荐)

3.Druid(德鲁伊)

使用前准备:

上代码(代码配置文件分离)


1.C3P0

使用前准备:

官网下载jar包

c3p0-v0.9.5.5 - JDBC3 Connection and Statement Pooling - Documentation (mchange.com)

注意是 bin.zip 

 下好以后来到这个路径下, 复制这两个jar包

项目下新建一个文件夹

把jar包复制到这里

CTRL选中两个jar包右键

选项目或者模块都可以,我们选择模块库, 再点确定

新建测试类测试

方式一:硬编码(数据库配置写进代码里)

本文使用@Test单元测试方法测试, 没见过换成main方法即可 

@Test
public void getConnection() throws PropertyVetoException, SQLException {
        //获取c3p0数据库连接池
        ComboPooledDataSource cpds = new ComboPooledDataSource();

        cpds.setDriverClass("com.mysql.cj.jdbc.Driver"); //加载JDBC驱动
        cpds.setJdbcUrl("jdbc:mysql://localhost:3306/test");//test对应你数据库的一张表
        cpds.setUser("root");//用户名
        cpds.setPassword("admin");//密码
       
        Connection cn = cpds.getConnection();//获取数据库连接
        System.out.println(cn);

        DataSources.destroy(cpds);//销毁连接池
}

运行结果: (注意, 红色是日志信息, 不是报错) 

方式二:写配置文件, 代码和配置分离(开发推荐)

src下创建文件, 文件名(连接池规定的不能改

c3p0-config.xml

 XML文件内容如下

<?xml version="1.0" encoding="UTF-8" ?>
<c3p0-config>
    <!-- 提供获取连接的4个基本信息 -->
    <named-config name="helloC3P0">
        <!-- MySQL8.0 就多一个cj -->
        <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
        <!-- 把test换成自己对应的数据库 -->
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
        <!-- 换成自己的用户名密码 -->
        <property name="user">root</property>
        <property name="password">admin</property>
    </named-config>
</c3p0-config>

其中

<named-config name="helloC3P0">

name可自定义

我们再写代码(构造函数里写刚刚自定义的名字)

    @Test
    public void getConnection2() throws SQLException {
        ComboPooledDataSource cpds = new ComboPooledDataSource("helloC3P0");
        Connection cn = cpds.getConnection();
        System.out.println(cn);
        DataSources.destroy(cpds);
    }

运行结果:

2.DBCP

使用前准备:

官网下载jar包(3个)

1.

DBCP – Overview (apache.org)

注意事项: Java8是最低要求版本

2.

Pool – Download Apache Commons Pool

3.

Apache Commons Logging - Download Apache Commons Logging

这三个包

 

 

jar包放到lib目录下, 添加为库(其他步骤同上文, 略)

 方式一:硬编码(数据库配置写进代码里)

    @Test
    public void testDBCP() throws SQLException {
        BasicDataSource source = new BasicDataSource();
        source.setDriverClassName("com.mysql.cj.jdbc.Driver");
        source.setUrl("jdbc:mysql://localhost:3306/test");
        source.setUsername("root");
        source.setPassword("admin");

        Connection cn = source.getConnection();
        System.out.println(cn);
    }

方式二:写配置文件, 代码和配置分离(开发推荐)

src右键

创建dbcp.properties

注意首字母小写

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:///test
username=root
password=admin

测试

@Test
public void test2() throws Exception {
    InputStream is = ClassLoader.getSystemClassLoader().
        getResourceAsStream("dbcp.properties");
    Properties pros = new Properties();
    pros.load(is);
    BasicDataSource source = BasicDataSourceFactory.createDataSource(pros);

    Connection cn = source.getConnection();
    System.out.println(cn);
}

运行结果: 

3.Druid(德鲁伊)

我们用到是阿里的数据库连接池德鲁伊

使用前准备:

官网下载jar包

Central Repository: com/alibaba/druid/1.2.8 (maven.org)

jar包放到lib目录下, 添加为库(其他步骤同上文, 略)

为了不麻烦 直接写第二种了

src下新建一个druid.properties

配置信息同dbcp.properties

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:///test
username=root
password=admin

上代码(代码配置文件分离)

    @Test
    public void test() throws Exception {
        InputStream is = ClassLoader.getSystemResourceAsStream("druid.properties");
        Properties pros = new Properties();
        pros.load(is);
        DataSource source = DruidDataSourceFactory.createDataSource(pros);
        Connection cn = source.getConnection();
        System.out.println(cn);
    }

我整理了文中用到的包, 如果官网下载过慢, 可以试试 :

阿里云盘分享 (aliyundrive.com)https://www.aliyundrive.com/s/8fhMzVnDzLf

提取码xb14 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值