JDBC与ODBC的区别与应用
谈到JDBC与ODBC的区别,JDBC和ODBC其实都是用来连接数据库的启动程序。ODBC中文名字叫做开放数据库互联,是微软技术人员开发的开放服务结构中有关数据库的一个组成部分,它建立一组相关的规范,并提供了一组对数据库访问的标准应用程序编程接口。简单的说,ODBC就是应用程序与数据库系统进行交互的工具。一个给予ODBC的应用程序对数据库的操作不依赖于人员的数据库系统,不支持与数据库管理系统打交道,所有的数据库操作由对应的数据库系统的ODBC驱动程序来完成。从而可以实现以同一的方式来处理所有的数据库。
而JDBC与ODBC类似,也是一个应用程序与数据库进行通信的中介。只是他们的开发商不同而已。JDBC是由Sun公司向关系型数据库系统厂商提供JDBC的规格与需求;然后各大厂商遵循标准规格设计出符合自己数据库产品的JDBC驱动程序。虽然JDBC与ODBC都可以实现类似的功能,但是他们的开发架构不同,其实现细节上也有所差异。为此数据库管理员必须要了解这方面的差异,并在工作中根据实际情况来选择合适的数据库驱动程序。
JDBC与ODBC的区别:JDBC的优点。
JDBC应用程序接口是JAVA程序语言内针对数据存取所涉及的程序开发接口,其内部是由许多类与接口构成。而ODBC则是由C语言来开发的。由于两者开发平台的不同,为此开发不同种各自的特点也就传递到了这连个数据库启动程序中。根据笔者的了解,相对ODBC数据库启动程序来说,JDBC有如下几个优点。若笔者概括的不够全面的话,欢迎大家来补全。
1、JDBC要比ODBC容易理解。大家学过编程的也许会有一个直观的感受,就是JAVA语言要比C语言好学的多。因为JAVA语言的设计思路是面向对象的,跟人的认识思维比较接近,为此比较容易被人接受,学习起来也相对轻松一点。而C语言则就比较抽象了,跟人的认识规律有一定的距离。为此他们开发出来的产品也有类似的特点。在ODBC中,虽然可以实现与数据库的交互,但是实现起来比较复杂。如一个简单的查询,也需要分为好几块内容;而在ODBC驱动程序内部再去进行整合,进行一些复杂的操作。这不仅降低了数据库启动程序的性能,而且也给程序开发者开发应用程序带来了一定的负面影响。而JDBC数据库启动程序在设计的时候就包含了大部分基本数据操作功能,为此在编写一些常规的数据库操作语句时,如查询、更新等等,其所需要的代码比ODBC要少的多。故从这方面来说,JDBC数据库启动程序要比ODBC容易理解。
2、JDBC数据库驱动程序是面向对象的,完全遵循JAVA语言的优良特性。通常情况下,只要有JAVA车功能需设计基础的用户都可以在最短时间内了解JDBC驱动程序的架构,比较容易上手,可以轻而易举的开发出强悍的数据库应用程序。而ODBC的话,由于其内部功能复杂,代码编写要求高。为此即使是一个C语言的高手,仍然需要花费不少的时间去了解这个数据库启动程序;在编写代码的时候,还离不开相关的参考书籍。
3、JDBC的移植性要比ODBC要好。通常情况下,安装完ODBC驱动程序之后,还需要经过一定的配置才能够使用。而不同的配置在不同数据库服务器之间不能够通用。也就是说,装一次需要配置一次。但是JDBC数据库驱动程序则不同。如果采用JDBC数据库驱动程序的话,则知需要选择适当的JDBC数据库驱动程序,就不需要进行额外的配置。在安装过程中,JDBC数据库驱动程序会自己完成相关的配置。为此JDBC的移植性要比ODBC要好。
总之JDBC与ODBC都是数据库的启动程序,它们的本质是相同的,都是为了处理SQL语句而设计的。而且JDBC在设计的时候,其也是在ODBC的基础上进行设计的,并保留了ODBC数据库驱动程序的部分功能。或者说,我们可以把JDBC看作是ODBC的另一个高级版本也未尝不可。JDBC主要在操作上、友好性上做了一定的改进。
JDBC与ODBC的区别:什么时候采用JDBC?
虽然说JDBC数据库启动程序比ODBC来说具有不少的优点,但是也并不是说在所有的情况下采用JDBC数据库启动程序都能够起到不错的效果。数据库管理员还需要根据企业的实际应用环境来进行选择。通常情况下,如果符合下面几种情况的任何一种,笔者建议采用JDBC数据库驱动程序。
一是采用Oracle公司的Oracle JDeveloper 10G来开发应用程序。JDeveloper 10G是Oracle公司提供的一个可视化的开发环境。可以帮助数据库管理员与开发人员方便的完成一些复杂的功能。如数据库开发人员可以借这个工具来设计WEB应用程序的网页执行流程;如可以用来开发业务服务层组件;如可以在JSP与JClient应用程序内实现数据绑定功能等等。特别是在利用这个工具开发业务服务层组件的时候,可以直接浏览与存取业务组件所对应的数据。数据库开发人员不用等到应用程序撰写好后才测试数据库的存取功能。显然这个特性让数据库开发人员在开发数据库应用程序的时候格外的便利。而为了配合这个开发工具,Oracle公司专门开发了对应的JDBC驱动程序。为此如果数据库开发人员采用JDeveloper开发工具的话,那么采用JDBC要比采用ODBC的兼容性要好。所以如果采用了这种开发工具的话,最好能够采用JDBC数据库启动程序。
二是如果应用程序采用的是JAVA开发平台的话,那么最好使用JDBC数据库启动程序。其实JDeveloper采用的也是JAVA开发平台。这主要是因为如果JAVA程序直接调用ODBC的C语言应用程序接口时,比较容易产生安全方面的问题。如Java语言是不采用指针的(因为指针的处理效率比较慢),而ODBC所采用的C语言却使用了大量的指针。为此如果使用JAVA语言平台来开发数据库应用程序,若采用ODBC数据库驱动程序的话,就不那么合适了。另外由于JDBC也是JAVA语言开发的,所以其兼容性也会好许多。为此笔者建议,如果数据库开发人员采用的是JAVA语言开发平台的话,那么最好采用JDBC驱动程序,而不是ODBC驱动程序。
在其他的情况下,数据库管理员与开发人员可以根据自己的习惯来选择合适的数据库驱动程序。
JDBC与ODBC的区别:能否从ODBC顺利过渡到JDBC?