JDBC知识点整理

本文详细介绍了JDBC的概念,作为Java访问数据库的接口,其主要功能是通过JDBC API操作不同类型的数据库。文章还讨论了JDBC驱动程序的四种类型,包括已废弃的JDBC-ODBC桥、本地API驱动、网络协议驱动和本地协议驱动。此外,还阐述了Statement、PreparedStatement和CallableStatement的区别和用途,并揭示了JDBC采用的桥接设计模式,使得抽象与实现解耦,便于数据库切换和维护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义及作用:

JDBC,中文名称:Java数据库连接,是Java Database Connecttivity的简写,是Java语言中用来规范客户端程序如何访问数据库的应用程序接口
简单来说,JDBC就是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一的访问,由一组用Java语言编写的类和接口组成。

分类:

这里说的分类是指JDBC驱动程序的分类,先来介绍什么是JDBC驱动程序。

我们已经知道,Java应用程序可以通过操作JDBC API来操纵底层数据库,但是,对于不同的数据库,实现相同功能所需要的语句是不一定相同的,因此,如何通过一个接口来实现不同数据库的相同功能呢?这就需要数据库厂商所提供的驱动程序了。不同的数据库提供了不同的JDBC Driver去实现JDBC API,而这些不同数据库之间的实现则由一个叫JDBC Driver Manager的类进行管理,所以我们就可以通过JDBC API去操作不同类型的数据库了,如MYSQL, ORACLE, SQL SERVER等

JDBC驱动程序主要分为四类:

1. JDBC-ODBC桥

这种方式是JDBC将访问语句交给ODBC,然后由ODBC调用本地数据库驱动代码.( 本地数据库驱动代码是指 由数据库厂商提供的数据库操作二进制代码库,例如在oracle for windows中就是oci dll 文 件)。这是由于微软推出ODBC的时间比较早,当时大部分的数据库都是通过ODBC进行访问,而Sun公司推出JDBC时为了兼容大多数的数据库,因此就有一种JDBC-ODBC桥的模式,但是,由于这种模式多了一个步骤,因此效率也比较低,在JDK1.8中已经被废弃了。

2. 本地API驱动

本地API驱动直接把JDBC调用转变为数据库的标准调用再去访问数据库.但是仍然需要加载本地数据库驱动代码,因此,不支持Internet程序。

3. 网络协议驱动

JDBC先把对数局库的访问请求传递给网络上的中间件服务器. 中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用传给数据库服务器.配置基本上是在服务器上完成。

4. 本地协议驱动

这种驱动直接把JDBC调用转换为符合相关数据库系统规范的请求.由于4型驱动写的应用可 以直接和数据库服务器通讯.这种类型的驱动完全由java实现,因此实现了平台独立性

JDBC中的Statement

JDBC为编程者提供了三种Statement:

  1. Statemen
    用于执行不带参数的SQL语句
  2. PreparedStatement
    用于执行带IN或不带IN参数的简单SQL语句
    它继承了Statement,区别于Statement的地方在于它是进行预编译的,所以执行速度比较快
  3. CallableStatement
    它继承了PrepareStatement
    用于执行数据库存储过程的调用

Statement 接口提供了执行语句和获取结果的基本方法。PreparedStatement 接口添加了处理 IN 参数的方法;而 CallableStatement 添加了处理 OUT 参数的方法。

JDBC采用的设计模式

JDBC采用了桥接模式,简单来说就是JDBC提供了两套接口,一套面向数据库厂商,由他们针对每个数据库进行具体实现;另一套面向程序员,只负责调用就可以了。

定义 :将抽象部分与它的实现部分分离,使它们都可以独立地变化。

意图 :将抽象与实现解耦。

桥接模式所涉及的角色

  1. Abstraction :定义抽象接口,拥有一个Implementor类型的对象引用
  2. RefinedAbstraction :扩展Abstraction中的接口定义
  3. Implementor :是具体实现的接口,Implementor和RefinedAbstraction接口并不一定完全一致,实际上这两个接口可以完全不一样Implementor提供具体操作方法,而Abstraction提供更高层次的调用
  4. ConcreteImplementor :实现Implementor接口,给出具体实现
    Jdk中的桥接模式:JDBC
    JDBC连接 数据库 的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不动,原因就是JDBC提供了统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值