大家好,我是Java进阶者,今天小编带大家一起来学习JDBC技术!
一、前言
在应用程序开发中,需要使用数据库管理和存储各种数据。在Java中,提供了一个JDBC技术(Java Database Connectivity,JDBC,Java数据库连接),它的作用是连接数据库并访问。接下来小编带大家一起来学习JDBC技术!
二、关系数据库
1.目前,各种关系数据库的操作基本使用SQL语言,SQL(Structured Query Language)是一个结构化查询语言。
2.常用的SQL语句,如下所示:
命令 | 功能 | 例子 |
---|---|---|
CREATE | 创建表格 | CREATE TABLE Test(Id VARCHAR(20) NOT NULL,Name VARCHAR(20) ) |
INSERT | 插入数据 | INSERT INTO Test VALUES('A01','张三') |
SELECT | 查询数据 | SELECT * FROM Test WHERE Id='A01' |
DELETE | 删除数据 | DELETE FROM Test WHERE Id='A01' |
UPDATE | 更新数据 | UPDATE Test set Id=Id 1 |
DROP | 删除表格 | DROP TABLE Test |
三、JDBC的概述
1.JDBC是一种执行SQL语句的Java API。它由一组使用Java语言编写的类和接口组成,使开发人员可以使用Java API来编写数据库应用程序。
2.使用JDBC的技术向各种关系数据库发送SQL语句就很方便,就不必为访问Oracle数据库专门写一个程序,为访问Sybase数据库又专门写一个程序,只需要JDBC API写一个程序向相应的数据库发送SQL语句即可。开发人员使用Java语言和SQL语句编写的数据库应用程序,可以在任何平台上运行。
3.JDBC驱动可以分为四种类型,包括了JDBC-ODBC桥、本地API驱动、网络协议驱动、本地驱动。在后面会详细的介绍这四种类型。
四、JDBC驱动类型
(一)JDBC-ODBC桥
JDBC-ODBC桥:通过驱动程序将所有的JDBC调用传给ODBC(Open Database Connectivity,ODBC,开放数据库互连),然后ODBC调用本地数据库接口访问数据库,这种执行效率很低,它是不适合需要存储大量数据的应用。
如下图所示:
1)首先SQL命令通过ODBC-Bridge传给ODBC,再由ODBC连接数据库并传递SQL命令到数据库中。
2)ODBC接受数据库返回结果,然后通过ODBC-Bridge返回的结果给应用程序。
(二)本地API驱动
本地API驱动:通过JDBC-Native API桥接器的转换,然后把客户机API上的JDBC调用转换成Oracle、 Sybase、Informix、DB2,最后存取数据库。
如下图所示:
1)首先应用程序去调用JDBC Driver,然后JDBC Driver使用本地函数库和数据库进行沟通。
2)本地函数库返回执行结果给JDBC Driver,最后JDBC Driver返回结果给应用程序。
(三)网络协议驱动
网络协议驱动:把JDBC 转换成与 DBMS 无关的网络协议,该协议又给某个服务器转换成一种DBMS的协议。在该网络服务器有个中间件(middleware)可以把Java客户机连接到不同的数据库中,它所使用的具体协议来自提供者。
如下图所示:
1)通过SQL命令使JDBC Driver传给Middleware Server中,然后Middleware Server把SQL命令传给数据库,并和数据库进行沟通。
2)将结果返回给Middleware Server,最后JDBC Driver返回的结果给应用程序。
(四)本地协议驱动
本地协议驱动:通过把JDBC调用转换成具体的数据库服务器,让它可以接受网络协议,然后允许客户机上来调用DBMS服务器(数据库管理系统(Database Management System,DBMS)),它是Intranet访问最有效的一个解决方法。
如下图所示:
1)首先应用程序把SQL命令传给JDBC Driver,然后JDBC Driver通过连接数据库传给SQL命令。
2)将执行的结果返回给JDBC Driver,最后JDBC Driver返回结果给应用程序。
五、总结
1.本文介绍了关系数据库、JDBC的概述、JDBC驱动类型。
2.关系数据库SQL是一种结构化查询语言,介绍它的常用SQL语句,例如增删改查。
3.JDBC是一种执行SQL语句的Java API。它由一组使用Java语言编写的类和接口组成,使开发人员可以使用Java API来编写数据库应用程序。
4.JDBC驱动类型分为四种,包括了JDBC-ODBC桥、本地API驱动、网络协议驱动、本地驱动,介绍了每一种驱动类型的作用。
5.希望大家通过本文的学习,对你有所帮助!
最后需要拓展包的小伙伴,可以在公众号后台回复“拓展包”关键字进行获取。
我是Java进阶者,希望大家通过本文的学习,对你有所帮助!欢迎大家加我微信,有问题可以随时帮大家解决噢,交个朋友也好哇~
------------------- End -------------------