admin 管理员组

文章数量: 1086019


2024年3月28日发(作者:js获取sessionid)

一、数据库连接池

1. 什么是连接池

传统的开发模式下,Servlet处理用户的请求,找Dao查询数据,dao会创建与数据

库之间的连接,完成数据查询后会关闭数据库的链接。

这样的方式会导致用户每次请求都要向数据库建立链接而数据库创建连接通常需要消

耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要

创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、宕

机。

解决方案就是数据库连接池

连接池就是数据库连接对象的一个缓冲池

我们可以先创建10个数据库连接缓存在连接池中,当用户有请求过来的时候,dao

不必创建数据库连接,而是从数据库连接池中获取一个,用完了也不必关闭连接,而是将

连接换回池子当中,继续缓存

使用数据库连接池可以极大地提高系统的性能

2. 实现数据库连接池

jdbc统一了数据库的操作 定义了规范

jdbc针对数据库连接池也定义的接口urce,所有的数据库连接池实

现都要实现该接口

该接口中定义了两个重载的方法

Connection getConnection()

Connection getConnection(String username,String password)

数据库连接池实现思路

1)定义一个类实现urce接口

2)定义一个集合用于保存Connection对象,由于频繁地增删操作,用LinkedList

比较好

3)实现getConnection方法,在方法中取出LinkedList集合中的一个连接对象返回

注意:

返回的Connection对象不是从集合中获得,而是删除

用户用完Connection,会调用close方法释放资源,此时要保证连接换回连接池,

而不是关闭连接

重写close方法是难点,解决方案:装饰设计模式、动态代理


本文标签: 数据库 连接 方法 创建 请求