Java数据库连接池c3p0过程解析

 更新时间:2020年07月27日 15:55:50   作者:岁月染过的梦  
这篇文章主要介绍了Java数据库连接池c3p0过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

首先下载c3p0的jar包

https://mvnrepository.com/search?q=c3p0

导入jar包到eclipse

将c3p0的jar包放到eclipse中,单击右键,选择build path ,在选择 add jars

创建连接池对象

ComboPooledDataSource cpd= new ComboPooledDataSource();

设置连接参数

方法一

使用静态代码块来初始化参数(不推荐)如果数据库发生改变,源文件需要重新编写编译,项目需要重新部署

static ComboPooledDataSource cpd= new ComboPooledDataSource();
	 static {
		 try {
				cpd.setDriverClass("com.mysql.jdbc.Driver");
				cpd.setJdbcUrl("jdbc:mysql:///users?characterEnconding=utf-8");
				cpd.setUser("root");
				cpd.setPassword("123456");
			} catch (PropertyVetoException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} 
	 }

方法二

在src的目录下建立c3p0.propertise文件

c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql:///users?characterEnconding=utf-8
c3p0.user=root
c3p0.password=123456

方法三

在src目录下建立 c3po-config.xml文件

<?xml version="1.0" encoding="UTF-8"?>

   <c3p0-config>


     <default-config>

         <property name="driverClass">com.mysql.jdbc.Driver </property>

         <property name="jdbcUrl">jdbc:mysql:///jt_db?characterEncoding=utf-8 
         </property>

         <property name="user">root </property>

         <property name="password">root </property>

   </default-config>

</c3p0-config>

调用连接池对象

//创建连接池对象
ComboPooledDataSource cpd= new ComboPooledDataSource();
  
  public void find() throws Exception {
  	//获取连接池连接
  	Connection conn = cpd.getConnection();
         //创建传输器
  	PreparedStatement ps = conn.prepareStatement("select * from user");
  	 
  	//结果集
  	ResultSet rs = ps.executeQuery();
  	
  	while(rs.next()) {
  		rs.getInt(1);//获取的行的第一列
  		rs.getString("id");//获取行的id列
  	}	
  }

连接池对象的close方发被改造了,不是释放连接而是将连接还给连接池

rs.close();
ps.close();
conn.close();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot Redis实现接口幂等性校验方法详细讲解

    SpringBoot Redis实现接口幂等性校验方法详细讲解

    这篇文章主要介绍了SpringBoot Redis实现接口幂等性校验方法,近期一个老项目出现了接口幂等性校验问题,前端加了按钮置灰,依然被人拉着接口参数一顿输出,还是重复调用了接口,通过复制粘贴,完成了后端接口幂等性调用校验
    2022-11-11
  • MyBatis配置文件的写法和简单使用

    MyBatis配置文件的写法和简单使用

    MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。这篇文章主要介绍了MyBatis配置文件的写法和简单使用,需要的朋友参考下
    2017-01-01
  • Spring Boot项目集成Knife4j接口文档的实例代码

    Spring Boot项目集成Knife4j接口文档的实例代码

    Knife4j就相当于是swagger的升级版,对于我来说,它比swagger要好用得多<BR>,这篇文章主要介绍了Spring Boot项目集成Knife4j接口文档的示例代码,需要的朋友可以参考下
    2021-12-12
  • SpringBoot数据校验功能的实现

    SpringBoot数据校验功能的实现

    这篇文章主要介绍了SpringBoot数据校验功能的实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • 详解Java中的BigDecimal

    详解Java中的BigDecimal

    这篇文章主要介绍了Java中的BigDecimal的使用方法,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-09-09
  • Spring Boot Thymeleaf实现国际化的方法详解

    Spring Boot Thymeleaf实现国际化的方法详解

    这篇文章主要给大家介绍了关于Spring Boot Thymeleaf实现国际化的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10
  • idea2020.1设置多个spring boot的service启动的实现

    idea2020.1设置多个spring boot的service启动的实现

    这篇文章主要介绍了idea2020.1设置多个spring boot的service启动,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Java基于Socket实现简单的多线程回显服务器功能示例

    Java基于Socket实现简单的多线程回显服务器功能示例

    这篇文章主要介绍了Java基于Socket实现简单的多线程回显服务器功能,结合实例形式分析了java使用socket进行多线程数据传输的相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • Java如何设置过期时间的map的几种方法

    Java如何设置过期时间的map的几种方法

    本文主要介绍了Java如何设置过期时间的map的几种方法,常见的解决方法有:ExpiringMap、LoadingCache及基于HashMap的封装三种,下面就详细的介绍一下,感兴趣的可以了解下
    2022-03-03
  • Feign+mybatisplus搭建项目遇到的坑及解决

    Feign+mybatisplus搭建项目遇到的坑及解决

    这篇文章主要介绍了Feign+mybatisplus搭建项目遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论