数据库连接池

一.数据库连接池

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

连接池的种类:
  常见的有 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 }

 

posted @ 2019-04-18 20:36  笑长不爱笑QvQ  阅读(240)  评论(0编辑  收藏  举报