zoukankan      html  css  js  c++  java
  • 数据库连接池

    标准接口: javax.sql.DataSource

    1. 获取连接: getConnection()

    2. 归还连接: Connection.close()

    注: 如果连接对象Connection是从连接池中获取的, 那么调用Connection.close()不会再关闭连接, 而是把连接归还给连接池.

    两种数据库连接池的实现

    c3p0

    使用步骤:

    1. 导入jar包: c3p0.jar和mchange-commons-java.jar(c3p0的依赖)

    2. 定义配置文件

    <c3p0-config>
        <default-config>
            <!--连接参数-->
            <property name="driverClass">com.mysql.jdbc.Driver</property>
            <property name="jdbcUrl">jdbc:mysql://192.168.31.169:3306/study</property>
            <property name="user">root</property>
            <property name="password">1234</property>
    
            <!--连接池参数-->
            <!--初始化申请的连接数量-->
            <property name="initialPoolSize">5</property>
            <!--最大连接数量-->
            <property name="maxPoolSize">10</property>
            <!--超时时间-->
            <property name="checkoutTimeout">3000</property>
        </default-config>
    </c3p0-config>
    
    • 文件名称: c3p0.properties 或者 c3p0-config.xml

    • 路径: 放在classpath(project的src目录)下

    1. 创建核心对象: 数据库连接池对象ComboPooledDataSource

    2. 获取连接: getConnection()

    package DataSourceDemo;
    
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    import javax.sql.DataSource;
    import java.sql.Connection;
    import java.sql.SQLException;
    
    /**
     * c3p0的演示
     */
    public class C3P0Demo {
        public static void main(String[] args) throws SQLException {
            //创建数据库连接对象
            DataSource ds = new ComboPooledDataSource();
            //获取连接对象
            Connection conn = ds.getConnection();
            //...
        }
    }
    

    druid

    使用步骤:

    1. 导入jar包: druid.jar
    2. 定义配置文件
    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql://192.168.31.169:3306/study
    username=root
    password=root
    # 初始化连接数量
    initialSize=5
    # 最大连接数
    maxActive=10
    # 最大等待时间
    maxWait=3000
    
    • properties形式
    • 文件名任意, 可放在任意目录下
    1. 加载配置文件Properties
    2. 获取数据库连接池对象: 通过工厂类DruidDataSourceFactory来获取
    3. 获取连接: getConnection()

    import com.alibaba.druid.pool.DruidDataSourceFactory;
    import javax.sql.DataSource;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.util.Properties;
    
     /**
      * Druid演示
     */
    public class DruidDemo {
        public static void main(String[] args) throws Exception {
            //加载配置文件
            Properties pro = new Properties();
            InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
            pro.load(is);
            //获取连接池对象
            DataSource ds = DruidDataSourceFactory.createDataSource(pro);
            //获取连接
            Connection conn = ds.getConnection();
            //...
        }
    }
    
  • 相关阅读:
    [转]Maven 初学+http://mvnrepository.com/
    比较IDEA与Eclipse
    [web] 使用Promise封装fetch实现网络超时,终止请求的功能
    [web] 理解和使用Promise.all和Promise.race
    [Web] How to Test React and MobX with Jest
    [Web 测试] Jest单元测试的几个指标
    [Web] 取消Promise
    [安全分析] 安全分析中的威胁情报(一)
    [Web] 深入理解现代浏览器
    [Web] HTML5新特性history pushState/replaceState解决浏览器刷新缓存
  • 原文地址:https://www.cnblogs.com/goxxiv/p/14464332.html
Copyright © 2011-2022 走看看