(1)MySQL驱动是什么?
    在Java系统中去访问MySQL数据库,必须得在系统的依赖中添加一个MySQL驱动,有了这个驱动才能跟MySQL数据库建立连接,然后执行各种各样的连接。
    如果我们要访问数据库必须得跟数据库建立一个网络连接,这个连接就是使用MySQL驱动,会在底层跟数据库建立网络连接,有了网络连接,才能发送请求跟数据库服务器,我们的Java代码才能基于这个连接执行各种各样的增删改查SQ语句。
    所以MySQL会提供Java版本的MySQL驱动,对于其他常见的编程语言,MySQL会提供对应语言的MySQL驱动,让各种语言编写的系统通过MySQL驱动去访问数据库

    (2)数据库连接池到底是用来干什么?
    一个Java系统只能跟数据库建立一个连接,我们使用Java开发的一个Web系统,是部署在Tomcat中的,Tomcat本身肯定是有多个线程并发的处理同时接收到的多个请求。这个时候,如果tomcat中的多个并发线程处理多个请求的时候,都要抢夺一个连接去访问数据库的话,那效率肯定是低下的。
    如果Tomcat中的每个线程在每次访问数据库的时候,都基于MySQL驱动去创建一个数据库连接,然后执行SQL语句,执行完之后再销毁这个
    数据库连接?
    这样行不行呢?肯定不行,Tomcat上百个线程并发频繁的创建数据库连接,执行SQL语句,然后频繁的销毁数据库连接。所以一般我们必须要使用一个数据库连接池,也就是在一个池子里维持多个数据库连接,让多个线程使用里面的不同数据库连接去执行SQL语句,然后执行完SQL语句之后,不销毁这个数据库连接,而是把连接放回池子里,继续使用。

    (3)MySQL数据库连接池是用来干什么的?
    现在我们已经知道,我们任何一个系统都会有一个数据库连接池去访问数据库,也就是说这个系统会有多个数据库连接,供多线程并发的使用。同时我们可能会有多个系统同时去访问一个数据库,这都是有可能的。
    所以当我们把目光转移到MySQL的时候,我们要来思考一个问题,那就是肯定会有很多系统要与MySQL数据库建立很多个连接,那么MySQL也必然要维护与系统之间的多个连接,所以MySQL架构体系中的第一个环节,就是连接池。
    实际上MySQL中的连接池就是维护了与系统之间的多个数据库连接。除此之外,你的系统每次跟MySQL建立连接的时候,还会根据你传递过来的账号和密码,进行账号密码的验证,库表权限的验证。
    0.png