ITEEDU

入门准备

接触对象

对象导向

资源管理

对象容器(Container)

输入输出(I/O)

执行绪(Thread)

反射(Reflection)

metadata

数据库(JDBC)

舍遗补缺

Java Gossip: 简介 JDBC

JDBC是用于执行SQL的Java API,它将数据库存取的API与SQL陈述分开,实现数据库无关的API接口,藉由JDBC统一的接口,开发人员只要专注于SQL陈述,而可以不必理会底层的数据库驱动程序与相关接口。

使用JDBC,由厂商实作数据库的接口,而SQL的操作部份由Java程序设计人员负责,如果要更换驱动程序,则只要加载新的驱动程序来源即可,Java 程序的部份则无需改变。

简单的说,JDBC让Java程序设计人员在撰写数据库程序的时候,可以「写一个程序,适用所有的数据库」。

下图JDBC API、数据库驱动程序与数据库之间的关系:
JDBC

JDBC数据库驱动程序依实作方式可以分为四个类型:

  • Type 1:JDBC-ODBC Bridge

使用者的计算机上必须事先安装好ODBC驱动程序,Type 1驱动程序利用Bridge的方式将JDBC的呼叫方式转换为ODBC的呼叫方式,用于Microsoft Access之类的数据库存取:

Application <--> JDBC-ODBC Bridge <--> ODBC Driver <--> Database

  • Type 2:Native-API Bridge

驱动程序上层包装Java程序以与Java应用程序作沟通,将JDBC呼叫转为原生程序代码的呼叫,下层为原生语 言(像是C、C++)来与数据库作沟通,下层的函式库是针对特定数据库设计的,不若Type 1可以对ODBC架构的数据库作存取:

 Application <--> Native-API Bridge <--> Native Driver <--> Database

  • Type 3:JDBC-middleware

透过中间件来存取数据库,使用者不必安装特定的驱动程序,而是由驱动程序呼叫中间件,由中间件来完成所有的数据 库存取动作,然后将结果传回给驱动程序:

Application <--> JDBC-middleware <--> middleware <--> Database

  • Type 4:Pure Java Driver

使用纯Java撰写驱动程序与数据库作沟通,而不透过桥接或中间件来存取数据库:

Application <--> Pure Java Driver <--> Database


MySQL的JDBC驱动程序属于Type 4,称之为Connector/J,目前有支持JDBC 2.0与JDBC 3.0的版本,您可以在以下的网站取得:
http://www.mysql.com/products/connector-j/index.php