ODBC与JDBC

前几天为了用PowerDesigner的逆向工程得到数据表的ER图,用到了ODBC,在此总结一下.
其它系统不太清楚,window7没有自带的mysql到odbc的实现,需要自己安装一个mysql-connector-odbc,如下是连接
mysql怎样配置ODBC数据源

下面说一下odbc。

odbc

维基定义

ODBC(Open Database Connectivity,开放数据库互连)提供了一种标准的API(应用程序编程接口)方法来访问数据库管理系统(DBMS)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。ODBC的设计者们努力使它具有最大的独立性和开放性:与具体的编程语言无关,与具体的数据库系统无关,与具体的操作系统无关。

背景

在ODBC诞生之前,如果要开发数据库应用程序,则必须要使用数据库厂商随数据库产品一同发布的一些工具集来访问数据库,或者在程序中使用嵌入式SQL来访问数据库。当时,对于访问数据库的方法,缺乏一个基于C语言的统一编程接口。在这种背景下,微软于1992年发表了ODBC。之后,X/Open组织以及ISO标准化组织基于ODBC 3.0的规范,进一步进行了标准化,于1995年发表了SQL/CLI标准。该标准已经成为了SQL标准的一部分。
很显示ODBC的出现统一了数据库访问接口,这对开发人员是一种福利,再不用为oracle提供一种访问方法,而为MS再提供一种访问方法了。

版本历史

  • ODBC 1.0: 发表于1992年9月
  • ODBC 2.0: 发表于1994年
  • ODBC 3.0: 发表于1995年
  • ODBC 3.5: 发表于1997年
  • ODBC 3.8: 发表于2009年,和 Windows 7一同发表[1]

ODBC只不过是应用程序编程接口,它是一种规范,具体的ODBC驱动程序由各个数据库厂商来实现了。从Oracle,DB2,SQL Server到微软的Access数据库,都实现了面向各自数据库产品的数据驱动程序。

ODBC驱动程序把厂商接口适配成ODBC接口是一种适配模式的应用。

JDBC

jdbc和odbc的作用很相似,只不过是用java实现了驱动程序,实现了一次编译,到处运行。

自从Java语言于1995年5月正式公布以来,Java风靡全球。出现大量的用java语言编写的程序,其中也包括数据库应用程序。由于没有一个Java语言的API,编程人员不得不在Java程序中加入C语言的ODBC函数调用。这就使很多Java的优秀特性无法充分发挥,比如平台无关性、面向对象特性等。随着越来越多的编程人员对Java语言的日益喜爱,越来越多的公司在Java程序开发上投入的精力日益增加,对java语言接口的访问数据库的API的要求越来越强烈。也由于ODBC的有其不足之处,比如它并不容易使用,没有面向对象的特性等等,SUN公司决定开发一Java语言为接口的数据库应用程序开发接口。在JDK1.x版本中,JDBC只是一个可选部件,到了JDK1.1公布时,SQL类包(也就是JDBCAPI)就成为Java语言的标准部件。

jdbc-odbc桥

由于ODBC被广泛地使用,为了让JDBC能够访问几乎所有的数据库,产生了JDBC-ODBC桥。JDBC-ODBC桥是一个JDBC驱动程序,它通过将JDBC操作转换为ODBC操作来实现JDBC操作。它仍然是一种适配模式。
目前大部分厂商都实现了jdbc接口,jdbc-odbc桥就退出了历史舞台。

    原文作者:张年轮
    原文地址: https://www.jianshu.com/p/8d4452693d8e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞