首页 > 代码库 > JDBC(一)简介

JDBC(一)简介

一,什么是JDBC

JDBC,即java database connectivity,是一套用于访问数据库但不依赖于数据库类型的JAVA API。

JDBC库包含了数据库的常用使用方法的API实现,基本如下:

  • 数据库连接
  • 创建SQL语句
  • 执行SQL语句
  • 浏览及修改返回的结果集

从根本上来说,JDBC是一份标准,完整的定义了一批轻量级访问下层数据库的接口。JAVA可用于创建各种类型的可执行的对象,比如:

  • JAVA APPLICATION
  • JAVA APPLETS
  • JAVA SERVLETS
  • JAVA SERVERPAGES(JSP)
  • ENTERPRISE JAVABEANS(EJB)

以上所有的可执行对象都可以使用JDBC驱动去访问数据库,并且提供了与ODBC类似的功能,允许JAVA程序包含不依赖于数据库的代码。

 

二,JDBC的架构

JDBC的API提供了双重和三重的数据库访问处理模型,但通常JDBC的架构只包含两层:

  • JDBC API(提供了应用程序到JDBC管理器的连接)
  • JDBC Driver API(提供了JDBC管理器与数据库驱动之间的连接)

通过驱动管理器(JDBC内置)及数据库驱动(数据库内置),JDBC为我们提供了应用程序与各类数据库之间的透明连接。驱动管理器确保了访问数据源时采用正确的驱动文件,支持当前各种数据库的驱动。

下图展示了驱动管理器,数据库驱动文件在项目架构中的位置:

JDBC包含的组件通常如下:

  • DriverManager:这个类维护着一张数据库驱动列表,如上图所示,当JAVA应用提供发来一份数据库连接请求时,驱动管理器会依据JAVA应用程序提供的数据驱动及JDBC子协议,给回返合适的数据库连接类型,也就是说,在驱动管理器的驱动列表中,首先识别应用程序提供的JDBC子协议的驱动,会被 用于创建一个数据库连接。
  • Driver:这个接口定义了应用程序与数据库服务器之间的通信。通常情况下,我们很少会直接使用驱动对象去做具体的交互,而是使用驱动管理器对象(管理着驱动)。驱动管理器将驱动工作的细节都抽象化了。
  • Connection:这个接口声明了与数据库打交道的所有方法。一个连接对象即代表着一个连接上下文,所有与数据库之间的交互只能通过连接对象来完成。
  • Statement:应用程序使用该接口的实现类的实例将SQL语句提交到数据库中,所有一些派生的接口会接收参数以便去执行数据库中的存储过程
  • ResultSet:这个类的实例维护着SQL语句执行完之后的返回结果,它为我们提供了迭代的方式去访问结果集
  • SQLExceition:这个类用于处理及记录在数据库操作过程中发生的所有错误。

/*************************************外星人乔丹拍板时间****************************************************/

如上图所示,JDBC类似于一个驱动工厂,可依据我们指定的数据库类型为我们提供合适的数据库连接,再通过它内置的各种组件方便我们进行数据库的相关操作