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

    一.数据库连接池

    概述:
      复杂的数据库应用, 频繁的建立,关闭连接,会极大的降低系统的性能,造成了系统性能的瓶颈
      此时可以使用数据连接池,可以创建指定数量的连接保存到池(容器)里面,
      之后要使用连接的时候直接从池中获取,使用完毕之后就回收到池中,
      简单说就是把连接交给连接池去管理,保证了需要使用连接的时候不再重新创建,也保证了连接可以重复使用

    连接池的种类:
      常见的有 Druid 还有 dbcp, 尤其适合Sping 整合使用
      Druid 性能更高, 是阿里巴巴开发的, 还可以实现性能的检测, 比如可以实现慢查询的观测.

    Demo: Druid 连接池管理连接
      1. 下载 Druid 的 jar
      2.将 Druid 的jar 添加到项目中
      3.定义出连接池工具类 (管理连接对象)

     1 public class DruidConnection {
     2     //实例化一个数据源对象
     3     private static DruidDataSource dataSource = new DruidDataSource();
     4     //使用静态代码块为数据源对象初始化值 
     5     static {
     6         //配置连接地址
     7         dataSource.setUrl("jdbc:mysql://localhost:3306/demo?useSSL=true&useUnicode=true&characterEncoding=UTF-8");
     8         //用户名
     9         dataSource.setUsername("root");
    10         //密码
    11         dataSource.setPassword("1234");
    12         //驱动地址
    13         dataSource.setDriverClassName("com.mysql.jdbc.Driver");
    14         //初始化连接大小
    15         dataSource.setInitialSize(2);
    16         //连接池最大使用连接数量
    17         dataSource.setMaxActive(20);
    18         //获取连接最大等待时间
    19         dataSource.setMaxWait(3000);
    20     }
    21     /**
    22      *    连接重连接池中获取
    23      * @return
    24      */
    25     public static Connection getConnection() {
    26         try {
    27             return dataSource.getConnection();
    28         } catch (SQLException e) {
    29             e.printStackTrace();
    30         }
    31         return null;
    32     }
    33     
    34     public static void close(Connection conn) {
    35         if (conn != null) {
    36             try {
    37                 //间接回收到连接池中
    38                 conn.close();
    39             } catch (SQLException e) {
    40                 e.printStackTrace();
    41             }
    42         }
    43     }
    44 }
  • 相关阅读:
    inux下tcpdump命令的使用
    git的命令行输出正确地显示中文文件名
    mysql权限修改记录
    Linux日常之以当前时间命名文件
    Linux 设置定时任务crontab命令
    (转)NodeJS
    (转)NodeJS收发GET和POST请求
    nodejs入门最简单例子
    「网易官方」极客战记(codecombat)攻略-游戏开发2-瓶颈-chokepoint
    「网易官方」极客战记(codecombat)攻略-游戏开发2-中心队形-center-formation
  • 原文地址:https://www.cnblogs.com/yslf/p/10732174.html
Copyright © 2011-2022 走看看