数据库驱动jdbc和数据库连接池dbcp/c3p0/druid
2022-01-08 本文已影响0人
乡村码农
之前面试遇到面试官问:数据库连接池有了解吗?你们用的是哪个?
我当时就懵了:平常只做crud,都是拿来就用,直接一个mapper.xxx,谁会关心连接池这东西呀
于是,我balabala... 好像是默认的,jdbc、c3p0...
说完面试官嘴角微微上扬,也不说对与不对,我内心一万个...ma
em.. 扯得有点远了,说回正事。
今天看spring的源码,看到有jdbc连接数据库的,想起这个问题,特地看了一下相关的知识!
- jdbc只是一个数据库驱动,用于对数据库建立连接用的。
- 数据库连接池,是把jdbc创建出来的连接放在一个池子里,共java程序调用的;常用的数据库连接池有:dbcp/c3p0/druid(德鲁伊)
1、jdbc的由来
jdbc驱动是由sun公司提供接口标准,数据库厂商(如mysql/oracle)进行实现的一组数据库访问及操作的程序
jdbc连接数据库的流程及原理
- (1)在开发环境加载指定数据库的驱动程序
- (2)在java程序中加载驱动程序
Class.forName("com.mysql.jdbc.Driver")
- (3)创建数据库连接对象
- (4)创建Statement对象,用于执行静态sql语句
- (5)调用Statement对象的相关方法,执行相对应的sql语句
- (6)关闭数据库连接
2、数据库连接池的比较
dbcp:该连接池的持续运行的稳定性还是可以,不过速度稍慢,在大并发量的压力下稳定性
有所下降,此外它不提供连接池监控
dbcp使用示例
c3p0:该连接池的持续运行的稳定性相当不错,在大并发量的压力下稳定性也有一定保证,
此外它不提供连接池监控
c3p0使用示例
druid:德鲁伊是阿里开源的连接池,号称为监控而生,该连接池的持续运行的稳定性好,速度快,在大并发量的压力下稳定性好,而且提供连接池监控
druid使用示例