首先说明本篇文章是作者参考尚硅谷宋红康老师讲授的JDBC技术进行整理之后编写的,所以在这里要先谢谢康师傅的讲授,然后下面跟着本篇文章一步步做就可以。
第一步首先需要在网上去下载好c3p0的jar包,这里给出百度网盘下载链接,提取码:abcd,建议下载在英文目录下,避免不必要的麻烦。
第二步在工程目录下新建一个名为lib的文件夹
步骤:选中你正在做的工程名,右键-->选择new-->选择Folder;注意名字要写lib,这是一种规范,填好之后确定,在你的工程目录下就会有一个lib的文件夹
第三步将下载好c3p0数据库连接池的压缩包解压,将里面lib目录下的如下两个包复制。
这里宋红康老师视频里只是复制了第一个包,但是可能是因为这个jar包的版本不同,这个版本需要将这两个包都复制下来。
第四步应用jar包
将刚才复制的两个jar包粘贴到工程目录下的新建的lib文件夹里,然后在lib包里选中第一个jar包(c3p0-0.9.5.5.jar),右键点击,选择Build path,再选择Add to Build path,只需要将第一个jar包进行操作,两个jar包就都会自动添加到工程自动创建的Referenced Libreries目录下,并且自动的应用到工程里。如图(作者为了演示将已经应用好的包拿出来了,所以报错)
弄好之后就是这样,前面有个类似于奶瓶的标志
第五步在src目录下创建名为c3p0-config.xml的文件。
右键选中src目录-->选择new-->选择XML文件,如果没有找到XML文件,就选择other项,下划就会有,如图
选中XML File,点击Next,在File name里将名字改为:c3p0-config,注意这里必须是这个名字。
点击Finsh完成创建,我这里因为已经有这个名字的文件夹了,就不能Finsh。
创建好之后如图,刚创建好这里是空白的,我这里已经进行了配置所以会有如下的信息,点击底部的Source切换为代码界面。
第六步详细的配置信息以及代码示例可以在下载的压缩包里找到;没有自己特殊的配置信息的要求的话可以直接复制下面的代码
步骤如下:进入解压后的包-->点击doc目录(一般代码说明文档会放在这个目录下)-->点击index.html就会进入官方的介绍界面-->在第12项里可以找到如图
也可以直接将如下基本配置的代码复制到该XML文件里,这里是参照宋红康老师讲授的已经修改好的配置。我这里是mysql的8版本的驱动包,所以是com.mysql.cj.jdbc.Driver。5版本的不用写中间的.cj
注意这里 <named-config name="helloc3p0">中的名字可以随便填,但是后面用到的时候需要保持一致。点击保存就配置好了。
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<named-config name="helloc3p0">
<!-- 提供获取连接的4个基本信息 -->
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<property name="user">root</property>
<property name="password">password</property>
<!-- 进行数据路连接池管理的基本信息 -->
<!-- 当数据库连接池中的连接数不够时,c3p0一次性向数据库服务器申请的连接数 -->
<property name="acquireIncrement">5</property>
<!-- c3p0数据库连接池中初始化时的连接数 -->
<property name="initialPoolSize">10</property>
<!-- c3p0数据库连接池维护的最少的连接数 -->
<property name="minPoolSize">10</property>
<!-- c3p0数据库连接池中维护的最多的连接数 -->
<property name="maxPoolSize">100</property>
<!-- c3p0数据库连接池最多维护的Statement的个数 -->
<property name="maxStatements">50</property>
<!-- 每个连接中可以最多使用的Statement的个数 -->
<property name="maxStatementsPerConnection">2</property>
</named-config>
</c3p0-config>
第七步最后可以新建一个单元测试方法对刚才的配置进行测试,从连接池获取一个连接并打印,有异常可以先抛出,毕竟只是测试连接池是否配置成功。测试代码如下
@Test
public void test2() throws Exception {
ComboPooledDataSource cpds = new ComboPooledDataSource("helloc3p0");
Connection conn = cpds.getConnection();
System.out.println(conn);
}
注意代码中的字符串要和之前配置文件里的名字相同(记得先打开mysql服务)
测试成功如下(深呼吸,有红字是正常的,最下面有连接的信息就行)