JDBC用过么?数据库连接池讲一下

看到别人面试的问题记录一下,答案自己想的,能说就行,百度各种结合一下。

jdbc连接数据库,大概分为五个步骤

1)加载驱动

2)建立连接

3)创建statement对象(创建执行者)

4)执行SQL(执行命令),返回结果

5)关闭数据库

建立、关闭数据库连接又耗时又耗费资源,一个数据库服务器能够同时建立的连接数也是有限的。大型的web程序应用中,会有成千上万的访问数据库的请求,在这种情况下,频繁的进行数据库连接操作势必占用很多的系统资源,网站的响应速度必定下降,严重的甚至会造成服务器的崩溃。对于每一次数据库连接,使用完后都得断开。否则,如果程序出现异常而未能关闭,将会导致数据库系统中的内存泄漏,最终将不得不重启数据库。还有,这种开发不能控制被创建的连接对象数,系统资源会被毫无顾及的分配出去,如连接过多,也可能导致内存泄漏,服务器崩溃。

上面自己总结一下:建立数据库连接,关闭数据库连接要耗费系统资源,而且我们不建立数据库连接池,就需要频繁的这样做,数据库就会炸了。

所以我们就要建立数据库连接池来解决这些问题。

“数据库连接”是一种稀缺的资源,为了保障网站的正常使用,应该对其进行妥善管理。其实我们查询完数据库后,如果不关闭连接,而是暂时存放起来,当别人使用时,把这个连接给他们使用。就避免了一次建立数据库连接和断开的操作时间消耗。

数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量﹑使用情况,为系统开发﹑测试及性能调整提供依据。

Druid

DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池,据说是目前最好的连接池。


参考:https://blog.csdn.net/shuaihj/article/details/14223015

https://www.jianshu.com/p/01a96c31ca59

原文地址:https://www.cnblogs.com/lhh666/p/12023150.html