一篇文章带你搞定Java的数据库访问

开发 后端 数据库
本文介绍了关系数据库、JDBC的概述、JDBC驱动类型。关系数据库SQL是一种结构化查询语言,介绍它的常用SQL语句,例如增删改查。

[[402543]]

一、前言

在应用程序开发中,需要使用数据库管理和存储各种数据。在Java中,提供了一个JDBC技术(Java Database Connectivity,JDBC,Java数据库连接),它的作用是连接数据库并访问。接下来小编带大家一起来学习JDBC技术!

二、关系数据库

1.目前,各种关系数据库的操作基本使用SQL语言,SQL(Structured Query Language)是一个结构化查询语言。

2.常用的SQL语句,如下所示:

三、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进阶学习交流
相关推荐

2020-02-28 11:29:00

ElasticSear概念类比

2021-05-15 10:16:14

Python匿名函数

2022-05-28 15:59:55

PythonPandas数据可视化

2024-04-17 13:21:02

Python匿名函数

2021-11-13 10:11:45

Pythonurllib库Python基础

2021-03-06 10:05:03

Python函数变量

2021-11-10 09:19:41

PythonShutil模块

2021-11-17 10:11:08

PythonLogging模块

2022-03-30 10:51:40

JavaScript性能调优

2021-04-22 09:01:35

MongoDB数据库NoSql数据库

2021-03-15 08:38:42

StringBuffeJava基础Java开发

2021-07-01 10:01:16

JavaLinkedList集合

2023-05-08 08:21:15

JavaNIO编程

2022-02-21 09:44:45

Git开源分布式

2021-06-30 00:20:12

Hangfire.NET平台

2023-05-12 08:19:12

Netty程序框架

2021-02-20 10:06:14

语言文件操作

2021-02-27 10:20:18

Go语言flag包开发技术

2021-01-13 08:40:04

Go语言文件操作

2021-06-04 09:56:01

JavaScript 前端switch
点赞
收藏

51CTO技术栈公众号