WEB03_Day01(中)-MySQL运行机制、JDBC
一、MySQL运行机制(扩展)
客户端和MySQL服务端建立连接,连接通讯机制:“半双工”,指的是某一个时刻,要么发送数据,要么接收数据,不能同时进行操作执行。当用户书写SQL语句发送给MySQL服务端,如果开启了缓冲功能,并且之前做过一致的查询功能时,则直接从查询缓存中命中查询结果,返回给客户端查询结果。如果没有开启查询缓存功能或者当前是一个新的查询业务逻辑时,执行时会进入(解析器、解析树、预处理器、新解析树)对SQL语句进行词法和语法的分析。当正确的情况,会通过查询优化器生成执行计划,然后通过查询执行引擎和存储引擎进行交货,从数据库中获取当前需要进行查询的数据结果,会将该结果返回给客户端,如果开启了查询缓存,那么同样的也会在查询缓存中进行存储一份。
二、JDBC
2.1 概述:
JDBC:Java DataBase Connectivity(Java数据库连接),JDBC是Sun公司提供的一套API,使用JDBC技术可以实现Java和数据库之间的交互。
Java程序员,在未来工作过程中,可能项目会用到MySQL、Oracle、SQL Server等等数据库,不同的数据库厂商提供不同的链接方案,为了避免程序员需要链接不同的数据库时都需要学习新的API使用,所以SUN公司设计了JDBC技术,该接口对外暴露了各大数据库厂商需要实现的业务逻辑,只需要程序员调用JDBC中所提供的相关API方法就可以链接不同的数据库。
2.2 使用JDBC技术连接MySQL数据库
-
创建Maven项目,打包方式为jar包
-
在项目的pom.xml文件中需要进行导入MySQL的驱动包
<!-- 连接MySQL数据库的依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
-
在项目下创建cn.tedu.jdbc包,包下创建JdbcTest01
-
加载驱动
-
获取连接对象
-
创建命令对象
-
执行sql
-
关闭资源
-
package cn.tedu.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class JdbcTest01 {
public static void main(String[] args) throws Exception{
/*
* JDBC连接MySQL步骤:
* 1.加载驱动
* 2.获取连接对象
* 3.创建命令对象
* 4.执行sql
* 5.关闭资源
*/
/*
* 1.加载驱动
* MySQL是一个Oracle厂商所提供的应用程序,
* 需要让JVM加载该应用程序,所以当前第一步需要
* 进行加载驱动,在5.*以后的版本以后可以省略不写
*/
Class.forName("com.mysql.cj.jdbc.Driver");
/*
* 2.获取连接对象
* url组成部分说明:
* localhost表示本地ip
* 3306表示mysql服务器的端口号
* URL和参数拼接参数使用?
* 参数与参数之间拼接使用&
*/
Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/newdb3?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true",
"root","root");
/*
* 3.获取命令对象
* Statement命令对象提供了可以进行执行sql的execute()方法
* 该方法的返回值是一个boolean类型的数据,
* 如果返回值为true,表示执行的是一个查询的sql语句
* 如果返回值为false,表示执行的是一个增删改的sql语句
*
*/
Statement stat = conn.createStatement();
/*
* 4.执行sql
*/
boolean b = stat.execute("SELECT 'Hello World!!!'");
System.out.println(b);
//5.关闭资源