C3P0连接池的基本配置与使用
上一期我写了一篇Druid连接池的基本配置与使用,今天我要介绍一下C3P0连接池的基本使用。因为是介绍基本使用,所以我打算用一个非常简单的java应用来教大家如何对C3P0连接池进行基本配和使用。所以你只要有jdbc和Java基础就能看懂这篇文章,并学会如何使用。
一.C3P0连接池简介
C3P0连接池也是一款开源的连接池,它与阿里巴巴的Druid的使用方法都差不多。不同之处在于Driud连接池的数据库配置是写在druid-config.properties的属性配置文件中,而C3P0连接池把数据库配置写在c3p0-config.xml的xml文件中。注意,这两个配置文件的文件名都写死了,不能乱改为其他名字。
二.C3P0连接池的使用步骤
1.创建一个普通的java项目,然后在项目文件夹下新建一个lib文件夹,用于存放我们要用到的第三方jar包。项目如下结构:(哈哈,是不是太细了)
2.然后下载我们需要用到的jar包,需要用到mysql的jdbc驱动,c3p0-0.9.5.5.jar和mchange-commons-java.jar。
可以百度c3p0,然后进入mchange.com找到下载链接下载jar包。也可以用maven导入所需要的jar包。如果你不会下载可以私信找我要,我发给你。或者教你如何下载。
下面导入好jar包后,把jar包到到模块中就开始操作和使用了。
3.在src目录下创建一个c3p0-config.xml文件,然后进行如下配置。注意,xml中要对特殊符号进行转义。
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config><default-config><!--jdbc驱动类--><property name="driverClass">com.mysql.cj.jdbc.Driver</property><!--连接字符串--><property name="jdbcUrl">jdbc:mysql://localhost:3306/files</property><!--数据库用户名--><property name="user">root</property><!--数据库的密码--><property name="password">zc20020106</property><!--初始化创建的连接数量--><property name="initialPoolSize">10</property><!--最大的连接数量--><property name="maxPoolSize">20</property></default-config>
</c3p0-config>
4.在main.java里面编写使用代码。
package com.company;import com.mchange.v2.c3p0.ComboPooledDataSource;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class Main {public static void main(String[] args) {//1.加载配置文件// 2.创建DataSource//这里两步直接合为了一步写,非常方便。DataSource dataSource=new ComboPooledDataSource();//3.得到数据库连接Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;try {conn=dataSource.getConnection();//4.后面的用法就是jdbc的用法了String sql="select id from myfile";ps=conn.prepareStatement(sql);rs=ps.executeQuery();while (rs.next()){System.out.println(rs.getInt("id"));}} catch (SQLException e) {e.printStackTrace();}finally {//不要忘记finally来释放资源//但是这里使用连接池关闭和不使用连接池关闭有所不同,// 使用连接池conn.close()是将连接回收到连接池中,// 不使用连接池conn.close()关闭则直接释放连接if (conn!=null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}}if (ps!=null){try {ps.close();} catch (SQLException e) {e.printStackTrace();}}if (rs!=null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}}}
}
这里conn获取的数据库连接是连接池在程序启动时创建好的连接,直接就能被获取拿来用,用完close()后,该连接又会回收到连接池中,等待下一次被调用。使用起来非常简单吧。
C3P0连接池的基本配置与使用相关推荐
- 关于c3p0连接池使用xml配置出现的一些错误
错误信息如下 7月 19, 2019 10:53:22 上午 com.mchange.v2.log.MLog 信息: MLog clients using java 1.4+ standard log ...
- c3p0连接池的详细配置
数据库连接是一个耗费大量资源且相当慢的操作,所以为了提高性能和连接速度,诞生了连接池这样的概念. 在多用户并发操作过程中,连接池尤为重要. 它是将那些已连接的数据库连接存放在一个容器里(连接池),这样 ...
- spring配置c3p0连接池、spring的声明式事务管理
一.spring配置c3p0连接池: 1.导入maven依赖: <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> & ...
- c3p0和jdbctemplate配置oracle集群rac,C3P0连接池、DRUID连接池和JdbcTemplate
目录 一.C3P0连接池 1.C3P0连接池简介 2.常用的配置参数 3.C3P0连接池基本使用 (1)C3P0配置文件 (2)API介绍 4.使用步骤 二.DRUID连接池 1. DRUID简介 2 ...
- Spring+Hibernate+c3p0连接池配置-连接无法释放的问题解决方案
1.Spring+Hibernate+c3p0连接池配置: <?xml version="1.0" encoding="UTF-8"?> < ...
- Hibernate配置C3P0连接池(在配好基本的hibernate配置下使用)
拷贝jar包 找到我们的hibernate安装包,在lib目录下找到optional目录,打开c3p0文件,拷贝里面的jar包到eclipse里 写一个测试类,代码入下 public class C3 ...
- Hibernate C3P0连接池配置
本文向大家介绍Hibernate C3P0连接池,可能好多人还不了解Hibernate C3P0连接池,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西. Hibernate自带的连接池算 ...
- c3p0连接池的配置和简单使用
背景 一般我们在项目中操作数据库时,都是每次需要操作数据库就建立一个连接,操作完成后释放连接.因为jdbc没有保持连接的能力,一旦超过一定时间没有使用(大约几百毫秒),连接就会被自动释放掉.而每次新建 ...
- hibernate4配置c3p0连接池报错
在hibernate的xml文件中配置c3p0连接池时,运行报错: java.lang.ClassNotFoundException: Could not load requested class : ...
- MyBatis配置C3P0连接池
这两天学到Mybatis感觉就要疯了,第一次接触,我是不是应该写点笔记,下面呢,记录一下连接池的配置,防止忘了. 第一步,二话不说,先导入所需jar包(如图所示三个) 第二步,继承UnpooledDa ...
最新文章
- c# 垃圾回收是引用类型而言的
- 智能老旧模糊照片修复——C++实现GFPGAN模型推理
- WINDOWS 蓝屏错误代码说明一览表
- 安全测试基础 -- 概述【转载】
- 江苏高考成绩什么时候可以查询2021,2021年江苏高考成绩什么时候公布出来,几月几号几点钟可以查询...
- Python集合set与frozenset的区别
- 浅谈易用性测试及GUI常见的测试要求
- 前端的c语言面试题,腾讯WEB前端笔试题和面试题答案
- ECharts 打造在线个人简历
- JAVA:实现ClosestPair最近对算法(附完整源码)
- win10卸载预装软件
- python怎么取百位_#python计算结果百位500向下取整,(0-499取000,500-999取500)
- (简单)SQL练习13:从titles表获取按照title进行分组
- 【java集合】ConcurrentHashMap源码分析
- guest additions
- [0CTF 2016]piapiapia php反序列化字符串逃逸
- 微积分学 \ 线性代数 \ 概率论与数理统计
- Python3网络爬虫教程8——有道在线翻译项目(JS加密)
- 固定资产月结\年结流程
- python中123+5.0的执行结果_123+5.0的执行结果为()_学小易找答案