在实际开发中,大量的开发都是基于数据库的,使用数据库可以方便地实现数据的存储与查询。
当前主流的数据库基本都是关系数据库,也就是使用SQL语言对数据库进行查询和操作。程序主要使用的关系数据库有MySQL、SQL Server、Oracle等数据库管理系统。
开发Java语言的团队为了方便程序员开发数据库程序,减少数据库开发的工作量,尽量做到同一数据库程序代码能够操作不同的数据库管理系统。他们开发了JDBC数据库驱动程序,JDBC是一种标准的执行SQL语句的Java API接口,它可以方便的实现对多种关系数据库管理系统的统一操作。
JDBC接口的具体实现由生产数据库的厂商来实现,当前主流的关系数据库管理系统(如MySQL、SQL Server、Oracle等),都提供了对JDBC接口的支持。
按照JDBC的实现方式,JDBC驱动程序分为以下四类:
JDBC—ODBC桥驱动
在这种实现方式中,JDBC并不直接操作数据库,而是通过Windows系统提供的ODBC(开放数据库连接)来操作数据库,ODBC可以看作是JDBC和数据库的连接桥梁,因此称作JDBC—ODBC桥驱动。
JDBC—ODBC桥驱动
由于JDBC利用ODBC作为操作数据库的桥梁,限制了Java程序的跨平台性,Java程序只能在Windows平台下运行,另外在性能上也比较低效。因此这种JDBC实现方式在数据库应用开发中用的比较少。
JDBC本地驱动
在这种实现方式中,JDBC驱动程序通过数据库管理系统的API接口来直接操作数据库,减少了通过ODBC操作数据库的环节,提高了数据库的访问效率。这种实现方式只能支持特定的数据库系统,如果要支持多个数据库系统,需要接入多个JDBC本地驱动。

JDBC本地驱动
JDBC本地驱动要求在运行Java数据库程序的每台机器上,同时要安装数据库、JDBC驱动以及数据库系统的API。
JDBC网络驱动
在这种实现方式中,本地客户端Java程序可以直接通过约定的网络通信协议访问数据库,JDBC驱动程序会把数据库的访问操作转换为约定的网络协议,发送到数据库应用服务器,数据库应用服务器再把网络协议转换为数据库的API。

JDBC网络驱动
在这种实现方式中,将JDBC调用直接转换为数据库特定的网络通信协议。它是最常见的驱动程序类型,Java数据库程序开发多采用这类JDBC驱动程序,网上下载的JDBC驱动jar包基本都属于这类驱动,通常是由数据库厂商直接提供,例:mysql-connector-java.jar。因为是使用网络通信,驱动程序可以完全用java编写,支持跨平台部署,性能也较好。

本地协议JDBC驱动
JDBC提供了JDBC API类库,让开发者能够连接数据库、执行SQL语句、数据库表记录的添加、插入、更新、删除等操作。在JDBC的基本操作中,最常用的类和接口有DriverManager、Connection、Statement、Result、Prepared Statement。开发人员可以利用这些类和接口来开发数据库应用程序。
在后面的数据库编程课程中,将采用MySQL8.0数据库作为课程案例的操作数据库,读者需要在本地安装MySQL8.0数据库。