【大白话系列】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 建立连接池,连接池会进行帐号密码的验证和库表权限的验证。

原文地址:https://www.cnblogs.com/Howinfun/p/12273892.html

时间: 2024-10-16 04:38:54

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

MySQL学习笔记之八:使用Xtrabackup进行MySQL热备

xtrabackup是由percona提供的mysql数据库备份工具,是一款开源的能够对innodb和xtradb数据库进行热备的工具. xtrabackup对InnoDB支持热备,完全备份和增量备份:对MyISAM引擎支持温备,完全备份 一.特点: ①备份过程快速.可靠: ②备份过程不会打断正在执行的事务: ③能够基于压缩等功能节约磁盘空间和流量: ④自动实现备份检验: ④还原速度快: 二.安装: 其最新版的软件可从 http://www.percona.com/software/percon

mysql 学习记录(二十五)--mysql日志

一.理论: 1.错误日志: a.记录了mysqld启动和停止时以及出错时的相关信息,当数据库出现故障导致无法启动时可以先查看此信息. b.可用--log-error来指定mysqld保存错误日志文件的位置 2.二进制日志: a.statement:记录的都是语句.优点:日志记录清晰易读.日志量少.对I/O影响较小,缺点:在某些情况下slave的日志复制会出错 b.row:将每一行的变更记录到日志中,而不是记录sql语句.优点:记录每一行的数据变化细节,不会出现某些情况下无法复制的情况,缺点:日志

MySQL学习笔记_13_Linux下C++/C连接MySQL数据库(三) --处理返回数据

 Linux下C++/C连接MySQL数据库(三) --处理返回数据 一.通过返回结果集中的字段数 [cpp] view plaincopyprint? unsigned int mysql_field_count(MYSQL * connection); //将MYSQL_ROW的值作为一个存储了一行数据的数组... unsigned int mysql_field_count(MYSQL * connection); //将MYSQL_ROW的值作为一个存储了一行数据的数组... 示例:

MySQL学习笔记_11_Linux下C++/C连接MySQL数据库(一)

 Linux 下 C++/C 连接 MySQL 数据库(一) 一.连接前准备 原材料:Ubuntu12.04LTS (已经安装了MySQL5.5或者更高级版本,新立得软件包,gcc/g++或者CodeBlosks编译器) 安装了以上的软件包后,我们可以正常使用MySQL完成数据管理工作,但是很多时候我们需要通过编写程序访问MySQL.此时,在程序中需要加载MySQL驱动头文件,但是默认这些驱动包是没有安装的,因此我们需要在新立得中找到"libmysqld-dev"包并安装. 安装完

MySQL学习笔记_12_Linux下C++/C连接MySQL数据库(二) --返回数据的SQL

 Linux下C++/C连接MySQL数据库(二) --返回数据的SQL 引: 返回数据的SQL是指通过查询语句从数据库中取出满足条件的数据记录 从MySQL数据库值哦功能检索数据有4个步骤: 1)发出查询 2)检索数据 3)处理数据 4)整理所需要的数据 用mysql_query()发出查询,检索数据可以使用mysql_store_result()或mysql_use_result(),取决与怎样检索数据,接着是调用mysql_fetch_row()来处理数据,最后,还必须调用mysql_

MySQL学习总结(摘抄)

1.数据库概述 简 而言之,数据库(DataBase)就是一个存储数据的仓库.为了方便数据的存储和管理,将数据按照特定的规律存储在磁盘上.通过数据库管理系统,可以有 效的组织和管理存储在数据库中的数据.如今,已经存在的Oracle.SQLServer.MySQL等诸多优秀的数据库. 详解内容: 数据存储方式 数据库在开发中的作用 数据库访问技术 MySQL数据库的介绍 数据库泛型 SQL语言 常见数据库系统 如果学习数据库 1.1 数据库理论基础 数据库能够将数据按照特定的规律组织起来.那么,数

我的MYSQL学习心得(九)

我的MYSQL学习心得(九) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL学习心得(五) 我的MYSQL学习心得(六) 我的MYSQL学习心得(七) 我的MYSQL学习心得(八) 这一篇<我的MYSQL学习心得(九)>将会讲解MYSQL的索引 索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型. 根据存储引擎定义每个表的最大索引数和最大索引长度.所有

Javaweb开发学习路线及Java三大框架

Java web开发是什么? Java web开发,是用Java技术来解决相关web互联网领域的技术总和.web包括:web服务器和web客户端两部分.Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等.Java技术对Web领域的发展注入了强大的动力. Java web 开发 Java web开发学习路线 一:入门阶段 学习目标:Java程序员 1: 熟悉jdk,jvm,eclipse,安装于配置jdk

(详细)JAVA使用JDBC连接MySQL数据库(1)- 软件

欢迎任何形式的转载,但请务必注明出处. 1.jdk 点击查看安装和环境配置教程 2.Eclipse 点击进入官网下载 注意下载完成打开.exe后,出现下图界面,有很多版本供选择 本人目前在学JSP所以安装的是Java EE版本,初学者可以选择第一个Java Developers版本 3.Mysql 点击进入官网下载 点击进入推荐安装教程+环境配置 下载页面注意事项 (虽然选项只有32位的,但下载完成后32位和64位都会安装) (上面的是在线安装,下面的是离线安装,建议选择离线安装) 系列文章 (