zoukankan      html  css  js  c++  java
  • javaweb基础----c3p0数据库连接池的相关配置

    1.导入jar包

    c3p0-0.9.1.2.jar

    2.在项目的根路径src下创建一个xml文件,命名为c3p0-config.xml(必须此名

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <c3p0-config>
     3     <!-- 默认配置,如果没有指定则使用这个配置 -->
     4     <default-config>
     5         <property name="driverClass">com.mysql.jdbc.Driver</property>
     6         <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/estore?useSSL=false</property>
     7         <property name="user">vincent</property>
     8         <property name="password">vincent</property>
     9     </default-config>
    10     
    11     <!-- 自定义配置 -->
    12     <named-config name="myDataSource">
    13         <property name="driverClass">com.mysql.jdbc.Driver</property>
    14         <property name="jdbcUrl">jdbc:mysql://localhost:3306/estore?useSSL=false</property>
    15         <property name="user">vincent</property>
    16         <property name="password">vincent</property>
    17         
    18         <!-- 初始化时创建的连接数  default:3-->
    19         <property name="initialPoolSize">3</property>
    20         <!-- 连接的最大空闲时间,如果超过这个时间,某个数据库连接还没有被使用,则会断开掉这个连接,如果为0,则永远不会断开连接,default:0  单位:秒 -->
    21         <property name="maxIdleTime">0</property>
    22         <!-- 连接池中拥有的最大连接数,如果获得新连接时会使连接总数超过这个值则不会再获取新连接,而是等待其他连接释放,所以这个值有可能会设计地很大 default:15 -->
    23         <property name="maxPoolSize">15</property>
    24         <!-- 连接池保持的最小连接数 default:3-->
    25         <property name="minPoolSize">3</property>
    26         <!-- 连接池在无空闲连接可用时一次性创建的新数据库连接数  default:3-->
    27         <property name="acquireIncrement">3</property>
    28     </named-config>
    29 </c3p0-config> 

    3.编写连接工具类

     1 public class DBUtils {
     2     private static final ComboPooledDataSource DATA_SOURCE = new ComboPooledDataSource();
     3     //为保证取得的是同一连接,使用ThreadLocal保证同一线程数据共享
     4     public static final ThreadLocal<Connection> TL = new ThreadLocal<>();
     5     // 获取数据源
     6     public static DataSource getDataSource() {
     7         return DATA_SOURCE;
     8     }
     9 
    10     // 获取连接
    11     public static Connection getConnection() throws SQLException {
    12         Connection conn = null;
    13         //第一次,尝试从ThreadLocal中获取连接
    14         conn = TL.get();
    15         //如果没有取到,从连接池中随机获取一个连接
    16         if(conn==null) {
    17             conn =DATA_SOURCE.getConnection();
    18             //将连接放到线程中
    19             TL.set(conn);
    20         }
    21          return conn;
    22     }
    23 }
    先想再做,不想不做。
  • 相关阅读:
    Jmeter基础元件
    Jmeter性能测试之添加思考时间
    Jmeter断言实例—响应断言
    Jmeter调试脚本之断言
    Jmeter调试脚本之关联
    jmeter调试脚本之变量参数化
    jmeter调试脚本之用户自定义变量
    XAMPP中Apache和Mysql启动失败问题总结
    Jmeter运行badboy录制的脚本
    Bugfree安装与使用
  • 原文地址:https://www.cnblogs.com/cjasonvincent/p/8685699.html
Copyright © 2011-2022 走看看