一、数据库连接池 1
什么是连接池 传统的开发模式下,Serv let 处理用户的请求,找 Dao查询数据,dao 会创建与数据库之间的连接,完成数据查询后会关闭数据库的链接
这样的方式会导致用户每次请求都要向数据库建立链接而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长
假设网站一天 10 万访问量,数据库服务器就需要创建 10 万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、宕机
解决方案就是数据库连接池 连接池就是数据库连接对象的一个缓冲池 我们可以先创建 10 个数据库连接缓存在连接池中,当用户有请求过来的时候,dao 不必创建数据库连接,而是从数据库连接池中获取一个,用完了也不必关闭连接,而是将连接换回池子当中,继续缓存 使用数据库连接池可以极大地提高系统的性能 2
实现数据库连接池 jdbc 统一了数据库的操作 定义了规范 jdbc 针对数据库连接池也定义的接口java
DataSource,所有的数据库连接池实现都要实现该接口 该接口中定义了两个重载的方法 Connection getConnection() Connection getConnection(String username,String passw ord) 数据库连接池实现思路 1)定义一个类实现java
DataSource 接口 2)定义一个集合用于保存 Connection 对象,由于频繁地增删操作,用LinkedList 比较好 3)实现getConnection 方法,在方法中取出LinkedList集合中的一个连接对象返回 注意: 返回的Connection 对象不是从集合中获得,而是删除 用户用完Connection,会调用close 方法释放资源,此时要保证连接换回连接池,而不是关闭连接 重写close 方法是难点,解