使用C3P0改造JDBC对数据库的连接

 更新时间:2019年08月21日 14:24:55   作者:learnpy3  
这篇文章主要为大家详细介绍了使用C3P0改造JDBC对数据库的连接,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了使用C3P0改造JDBC对数据库的连接,供大家参考,具体内容如下

1.Connection对象在JDBC使用的时候.使用的时候就会去创建一个对象,使用结束以后就会将这个对象给销毁了.每次创建和销毁对象都是耗时操作.需要使用连接池对其进行优化.程序初始化的时候,初始化多个连接,将多个连接放入到池中(内存中).每次获取的时候,都可以直接从连接池中进行获取.使用结束以后,将连接归还到池中。

本文介绍的连接池为:C3P0

2.使用步骤

导入jar包:c3p0-0.9.1.2.jar
在src文件夹下创建c3p0-config.xml文件
使用C3P0连接池

3.代码实现

package lesson15_jdbc;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class C3P0_lianjiechi {
  public static void main(String[] args) {
    //使用自定义配置
    ComboPooledDataSource dataSource1=new ComboPooledDataSource();
    //使用自定义配置
    //ComboPooledDataSource dataSource2 = new ComboPooledDataSource("");
    //建立连接
    try{
      Connection conn = dataSource1.getConnection();
      String sql="select * from 1_mytable1";
      PreparedStatement pst=conn.prepareStatement(sql);
      ResultSet res = pst.executeQuery();
      while(res.next()){
        System.out.println(res.getString("n")+"->"+res.getString("age")+"->"+res.getString("gender"));
      }
      res.close();
      pst.close();
      conn.close();
    }catch (SQLException e){
      e.printStackTrace();
    }
  }
}

4.c3p0-config.xml配置文件(如下)

<c3p0-config>
  <!-- 默认配置,如果没有指定则使用这个配置 -->
  <default-config>
   <!-- 基本配置 -->
   <property name="driverClass">com.mysql.jdbc.Driver</property>
   <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/1_mydata</property>
   <property name="user">root</property>
   <property name="password">123456</property>
  
   <!--扩展配置-->
   <property name="checkoutTimeout">30000</property>
   <property name="idleConnectionTestPeriod">30</property>
   <property name="initialPoolSize">10</property>
   <property name="maxIdleTime">30</property>
   <property name="maxPoolSize">100</property>
   <property name="minPoolSize">10</property>
   <property name="maxStatements">200</property>
  </default-config> 
  
  
  <!-- 命名的配置 -->
  <named-config name="Space_c3p0">
   <property name="driverClass">com.mysql.jdbc.Driver</property>
   <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/1_mydata</property>
   <property name="user">root</property>
   <property name="password">123456</property>
   
   
   <!-- 如果池中数据连接不够时一次增长多少个 -->
   <property name="acquireIncrement">5</property>
   <property name="initialPoolSize">20</property>
   <property name="minPoolSize">10</property>
   <property name="maxPoolSize">40</property>
   <property name="maxStatements">20</property>
   <property name="maxStatementsPerConnection">5</property>
  </named-config>
</c3p0-config> 

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

相关文章

  • Java与Node.js利用AES加密解密出相同结果的方法示例

    Java与Node.js利用AES加密解密出相同结果的方法示例

    这篇文章主要介绍了Java与Node.js利用AES加密解密出相同结果的方法,文中给出了详细的示例代码,相信对大家的学习或者工作能带来一定的帮助,需要的朋友们下面来一起看看吧。
    2017-02-02
  • Fluent Mybatis让你摆脱Xml文件的技巧

    Fluent Mybatis让你摆脱Xml文件的技巧

    Fluent-Mybatis类似于Mybatis-Plus是对Mybatis进一步的封装,可以只用一个实体类对象,通过代码生成器,在编译的过程中生成所需要的各类文件,简化了项目的基础构建,提高开发效率,本文重点给大家介绍Fluent Mybaits让你摆脱Xml文件的技巧,一起看看吧
    2021-08-08
  • 解决IDEA开发工具右侧没有Maven工具栏的问题

    解决IDEA开发工具右侧没有Maven工具栏的问题

    这篇文章主要给大家解决了IDEA开发工具右侧没有Maven工具栏的问题,文中有详细的解决步骤,如果有遇到一样问题的小伙伴,可以参考阅读本文
    2023-09-09
  • Spring中ApplicationEventPublisher发布订阅模式的实现

    Spring中ApplicationEventPublisher发布订阅模式的实现

    本文主要介绍了Spring中ApplicationEventPublisher发布订阅模式的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Spring boot使用spring retry重试机制的方法示例

    Spring boot使用spring retry重试机制的方法示例

    这篇文章主要介绍了Spring boot使用spring retry重试机制的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Java一个简单的红包生成算法

    Java一个简单的红包生成算法

    今天小编就为大家分享一篇关于Java一个简单的红包生成算法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • java多线程Thread-per-Message模式详解

    java多线程Thread-per-Message模式详解

    本篇文章给大家分享java多线程Thread-per-Message模式的相关知识点,对此有兴趣的朋友参考学习下。
    2018-05-05
  • ShardingSphere如何进行sql重写示例详解

    ShardingSphere如何进行sql重写示例详解

    这篇文章主要为大家介绍了ShardingSphere如何进行sql重写示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • JAVA Spring中让人头痛的JAVA大事务问题要如何解决你知道吗

    JAVA Spring中让人头痛的JAVA大事务问题要如何解决你知道吗

    这篇文章主要介绍了Java Spring事务使用及验证过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-09-09
  • java关于list集合做删除操作时的坑及解决

    java关于list集合做删除操作时的坑及解决

    这篇文章主要介绍了java关于list集合做删除操作时的坑及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11

最新评论