【大白话系列】MySQL 学习总结 之 Java系统如何和 MySQL 打交道?

一、MySQL驱动

我们如果在 Java 系统里要访问 MySQL,我们只需要引入一个 MySQL 的驱动即可,然后通过 MySQL 驱动和 MySQL 进行网络通信,对数据库表进行各种增删改查的操作。

二、如何引入 MySQL 驱动

1、以前的老旧方法:
我们会找到 MySQL 驱动的 jar 包,然后放到项目中的 lib 文件夹里头。

2、现在比较高级的方法 :
可以直接使用 Maven 或者 Gradle 引入 MySQL 驱动的依赖。
maven:

<dependencies>
  <dependency>
     <groupId>MySQL</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>5.1.46</version>
  </dependency>
</dependencies>

gradle:

dependencies{
  compile ("mysql:mysql-connector- java:5.1.24")
}

三、客户端连接池

1、争抢数据库连接:
上面说到,我们是通过 MySQL 驱动和 MySQL 进行网络通信,既然是网络通信,那么就会有一条数据库连接在。
我们的系统当然不可能每秒只有一条请求过来,那么就会存在多个请求去争抢一个数据库连接,没抢到的还需要排队等候,这是相当降低接口的执行性能的。

2、重复创建和断开:
当请求执行完了,数据库连接必定会断开连接。而当新的请求过来,又要重新创建一个新的数据库连接,所以这里会出现重复创建和断开数据库连接,而创建和断开操作都很耗时的。

3、连接池机制:
这时候就会出现数据库连接池的机制,他会在池子里维持多个数据连接,让多个线程使用里面的不同的数据库连接去执行SQL语句,然后执行完SQL语句之后,不要销毁这个数据库连接,而是把连接放回池子里,后续还可以继续使用。

4、常见的数据库连接池:
DBCP、C3P0、Druid,HikariCP等等。

四、MySQL 的数据库连接池

1、维护多个连接:
MySQL 的数据库连接池就是维护了与系统之间的多个数据库连接。

2、验证:
除此之外,系统每次和 MySQL 建立连接池,连接池会进行帐号密码的验证和库表权限的验证。

猜你喜欢

转载自www.cnblogs.com/Howinfun/p/12273892.html