大白话系列MySQL 学习总结 之 Java系统如何和 MySQL 打交道?
Posted howinfun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大白话系列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 建立连接池,连接池会进行帐号密码的验证和库表权限的验证。
以上是关于大白话系列MySQL 学习总结 之 Java系统如何和 MySQL 打交道?的主要内容,如果未能解决你的问题,请参考以下文章
大白话系列MySQL 学习总结 之 初步了解 MySQL 的架构设计
大白话系列MySQL 学习总结 之 初步了解 MySQL Server 的 binlog 组件
大白话系列MySQL 学习总结 之 缓冲池(Buffer Pool) 如何支撑高并发和动态调整