前言

课程需要哪些前置技术:

  • 需要软件
    • MySQL 软件(8+ 版本)
    • MySQL 可视化工具(客户端)
    • IEDA
  • SQL 语句
    • 掌握数据库连接命令
    • 掌握基本的 DDL、DQL、DML 等命令
    • 掌握数据库事务的概念
  • Java 基础语法
    • 多态机制
    • 基本容器使用(集合、数组等)
    • 泛型
    • 反射
技术版本备注
IDEA2022.2最新版本
JDK1.8
mysql-jdbc 驱动8.0.278.0.25+
druid1.1.21
mysql8.0.25

JDBC 技术概念和理解

JDBC:Java Database Connectivity,Java 连接数据库技术

通俗点说,在 Java 代码中,使用 JDBC 提供的方法,可以发送字符串类型的 SQL 语句到数据库管理软件(MySQL、Oracle 等),并且获取语句执行结果,进而实现数据库数据 CURD 操作的技术

总结:

  1. JDBC 是 Java Database Connectivity 单词的缩写,翻译为 Java 连接数据库
  2. JDBC 是 Java 程序连接数据库的技术统称
  3. JDBC 由 Java 语言的规范(接口)和各个数据库厂商的实现驱动(jar)组成
  4. JDBC 是一种典型的面向接口编程
  5. JDBC 优势
    1. 只需要学习 JDBC 规范接口的方法,即可操作所有的数据库软件
    2. 项目中期切换数据库软件,只需要更换对应的数据库驱动 jar 包,不需要更改代码

JDBC 核心 API

JDBC 技术组成:

  1. JDK 下 JDBC 规范接口,在 java.sqljavax.sql 包中的 API
    • 为了项目代码的可移植性,可维护性,SUN 公司从最初就制定了 Java 程序连接各种数据库的统一接口规范。这样的话,不管是连接哪一种 DBMS 软件,Java 代码可以保持一致性。
  2. 各个数据库厂商提供的驱动 jar 包
    • 因为各个数据库厂商的 DBMS 软件各有不同,那么内部如何通过 SQL 实现增、删、改、查等管理数据,只有这个数据库厂商自己更清楚,因此把接口规范的实现交给各个数据库厂商自己实现。
    • jar 包是什么?Java 程序打成的一种压缩包格式,可以将这些 jar 包引入项目中,然后就可以使用这个 Java 程序中类和方法以及属性了

涉及具体核心类和接口:

  • DriverManager:获取连接
    • 将第三方数据库厂商的实现驱动 jar 注册到程序中
    • 可以根据数据库连接信息获取 Connection 对象
  • Connection:建立连接
    • 和数据库建立的连接,在连接对象上,可以多次执行数据库 CRUD 动作
    • 可以获取 StatementPreparedStatementCallableStatement 对象
  • 发送 SQL 语句
    • Statement:静态 SQL 语句(没有动态值、没有条件值)
    • PreparedStatement:预编译 SQL 有语句(有动态值)
    • CallableStatement
    • 具体发送 SQL 语句到数据库管理软件的对象
    • 不同发送方式稍有不同,PreparedStatement 最常使用
  • Result:查询的结果(对查询语句才有)
    • 面向对象思维的产物:抽象成数据库的查询结果表
    • 存储 DQL 查询数据库结果的对象
    • 需要我们进行解析,获取具体的数据库数据

为什么选择全新 8+ 版本 mysql-jdbc 驱动?

https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-whats-new.html

MySQL 软件知名版本迭代时间:

版本号迭代时间大小
mysql-8.0.254月 30, 2021435.7M
mysql-5.7.251月 10, 2019387.7M
mysql-5.5.309月 19, 2012201.5M

性能提升

官方表示 MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍。

MySQL 8.0 在读/写工作负载、IO 密集型工作负载、以及高竞争工作负载时相比 MySQL5.7 有更好的性能。

支持 JDBC 规范 4.2+ 版本新特性

Java JDBC 规范驱动版本和更新时间:

YearJDBC VersionJSR SpecificationJDK Implementation
2017JDBC 4.3JSR 221Java SE 9
2014JDBC 4.2JSR 221Java SE 8
2011JDBC 4.1JSR 221Java SE 7
2006JDBC 4.0JSR 221Java SE 6
2001JDBC 3.0JSR 54JDK 1.4
1999JDBC 2.1JDK 1.2
1997JDBC 1.2JDK 1.1

JDBC 规范版本更新内容(了解):

  • JDBC 4.3 中引入的主要新功能包括:
    • 添加了对分片的支持
    • 添加了 java.sql.连接生成器 接口
    • 添加了 java.sql.ShardigKey 接口
    • 添加了 java.sql.分片密钥生成器 接口
    • 添加了 .sql.XA 连接生成器 接口
    • 添加了 javax.sql.池连接生成器 接口
  • JDBC 4.2 中引入的主要新功能包括:
    • 添加了对引用光标的支持
    • 添加了 java.sql.驱动程序操作 接口
    • 添加了 .sql.SQLType 接口
    • 添加 java.sql.JDBCType 枚举
    • 一些 JDBC 接口更改
  • JDBC 4.1 中引入的主要新功能包括:
    • 添加了对“使用资源试用”语句的支持
    • 增强的日期值和时间戳值
    • 从 Java 对象到 JDBC 类型的其他映射
    • 一些 JDBC 接口更改
  • JDBC 4.0 中引入的主要新功能包括:
    • 自动加载 java.sql.驱动程序
    • 数据类型支持
    • 国家字符集转换支持
  • 由于 JDBC 4.3 API 是向后兼容的,因此将 Java SE 9 或更高版本与 JDBC 4.2、4.1、4.0 或 3.0 驱动程序一起使用没有问题,只要不使用 JDBC 4.3 API 中引入的新方法或类。

支持 JDK 8 版本语法变更新特性

Connector/J 8.0 是专门为在 Java 8 平台上运行而创建的。

众所周知,Java8 与早期的 Java 版本高度兼容,但还是存在少量不兼容性,所以,驱动技术版本尽量选择支持 JDK 8.0+

其他

支持全新的驱动 API,增加自动时区选择和默认 UTF-8 编码格式等配置