美文网首页Java
11.数据连接池

11.数据连接池

作者: 孔垂云 | 来源:发表于2017-04-18 23:34 被阅读67次

数据连接池的原理就是解决多次连接数据库的性能损耗,建立一个pool,用来存储数据库连接,需要的时候直接从连接池获取,而不需要再次和数据库建立连接。
目前常用的数据连接池(简称数据源)有以下几种:

  • DBCP
  • DBCP2
  • C3P0(有性能问题,不建议用)
  • Druid(阿里数据源,推荐使用)
  • Tomcat自带连接池
  • WebLogic数据源
    这里面我目前常用的是Druid,性能不错,而且自带监控功能,可以和Spring完整整合,监控sql执行性能,监控service的执行效率。
    下面写一个方法来使用数据连接池,代码参见:com.critc.DataSourceTest

首先需要在pom.xml添加druid依赖

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.25</version>
        </dependency>

代码如下:

public class DataSourceTest {
    public static void main(String[] args)throws  Exception {
        Hashtable<String, String> map = new Hashtable<String, String>();
        map.put("driverClassName", "com.mysql.jdbc.Driver");
        map.put("url", "jdbc:mysql://127.0.0.1/test");
        map.put("username", "root");
        map.put("password", "root");
        map.put("initialSize", "2");
        map.put("maxActive", "10");
        DataSource dataSource = DruidDataSourceFactory.createDataSource(map);
        long l = System.currentTimeMillis();
        for (int i = 0; i < 1000; i++) {
            Connection conn = dataSource.getConnection();
            conn.close();
        }
        System.out.println("连接池执行时间:" + (System.currentTimeMillis() - l));

        long l2 = System.currentTimeMillis();
        for (int i = 0; i < 1000; i++) {
            Connection conn = new JdbcTest().getConn();
            conn.close();
        }
        System.out.println("JDBC连接执行时间:" + (System.currentTimeMillis() - l2));
    }
}

可以看出使用连接池获取数据库连接的时间远远小于直接连接数据库。

源码下载

本例子详细源码

相关文章

  • 11.数据连接池

    数据连接池的原理就是解决多次连接数据库的性能损耗,建立一个pool,用来存储数据库连接,需要的时候直接从连接池获取...

  • 撩课-JavaWeb之什么是连接池与连接池使用

    什么是连接池 没有连接池的情况 数据库连接池 池 连接池 作用 数据库连接池 示意图 连接池中的属性 连接池使用 ...

  • java基础-day36-数据库连接池和HTML

    数据库连接池和HTML 1. 数据库连接池 1.1 为什么要使用数据库连接池 1.2 数据库连接池考虑的问题 1....

  • JDBC Druid数据库连接池

    Druid数据库连接池 使用Druid数据库连接池技术

  • 《深入浅出MySQL》23章<应用优化>读书笔记

    1:使用数据库连接池 什么是数据库连接池?数据库连接池(Connection pooling)是 程序启动时 建立...

  • 数据库连接池的设置

    数据库连接池 几乎所有的商业应用都有大量数据库访问,通常这些应用会采用数据库连接池。理解为什么需要连接池,连接池的...

  • DBCP

    分类说明名称DBCP全称Database Connection Pool功能数据库连接池 连接池 数据库连接池是一...

  • 数据库连接池,wtforms的使用

    目录 数据库连接池pymsql链接数据库数据库连接池版 wtforms的使用使用1使用2 16.数据库连接池 py...

  • 数据库连接池

    使用数据库连接池优化程序性能 编写数据库连接池 编写连接池需事先java.sql.DataSource接口。Dat...

  • Druid数据库连接池就这么简单

    前言 本章节主要讲解Druid数据库连接池,为什么要学Druid数据库连接池呢?? 我的知识储备数据库连接池有两种...

网友评论

    本文标题:11.数据连接池

    本文链接:https://www.haomeiwen.com/subject/ffatzttx.html