什么是JDBC?什么是ODBC?以及它们有什么区别?(具体点,谢谢?) JDBC 和ODBC有什么区别 都是什么意思?

ODBC\u548cJDBC\u662f\u505a\u4ec0\u4e48\u7684\uff1f

ODBC\uff1a\u4e00\u822c\u6307\u5f00\u653e\u6570\u636e\u5e93\u8fde\u63a5\uff08Open Database Connectivity\uff0cODBC\uff09\u662f\u4e3a\u89e3\u51b3\u5f02\u6784\u6570\u636e\u5e93\u95f4\u7684\u6570\u636e\u5171\u4eab\u800c\u4ea7\u751f\u7684\u3002
\u73b0\u5df2\u6210\u4e3aWOSA(The Windows Open System Architecture ),Windows\u5f00\u653e\u7cfb\u7edf\u4f53\u7cfb\u7ed3\u6784)\u7684\u4e3b\u8981\u90e8\u5206\u548c\u57fa\u4e8eWindows\u73af\u5883\u7684\u4e00\u79cd\u6570\u636e\u5e93\u8bbf\u95ee\u63a5\u53e3\u6807\u51c6ODBC \u4e3a\u5f02\u6784\u6570\u636e\u5e93\u8bbf\u95ee\u63d0\u4f9b\u7edf\u4e00\u63a5\u53e3\uff0c\u5141\u8bb8\u5e94\u7528\u7a0b\u5e8f\u4ee5SQL \u4e3a\u6570\u636e\u5b58\u53d6\u6807\u51c6\uff0c\u5b58\u53d6\u4e0d\u540cDBMS\u7ba1\u7406\u7684\u6570\u636e\uff1b\u4f7f\u5e94\u7528\u7a0b\u5e8f\u76f4\u63a5\u64cd\u7eb5DB\u4e2d\u7684\u6570\u636e\uff0c\u514d\u9664\u968fDB\u7684\u6539\u53d8\u800c\u6539\u53d8\u3002\u7528ODBC \u53ef\u4ee5\u8bbf\u95ee\u5404\u7c7b\u8ba1\u7b97\u673a\u4e0a\u7684DB\u6587\u4ef6\uff0c\u751a\u81f3\u8bbf\u95ee\u5982Excel \u8868\u548cASCI I\u6570\u636e\u6587\u4ef6\u8fd9\u7c7b\u975e\u6570\u636e\u5e93\u5bf9\u8c61\u3002

JDBC\uff1aJDBC\uff08Java DataBase Connectivity,java\u6570\u636e\u5e93\u8fde\u63a5\uff09\u662f\u4e00\u79cd\u7528\u4e8e\u6267\u884cSQL\u8bed\u53e5\u7684Java API\uff0c\u53ef\u4ee5\u4e3a\u591a\u79cd\u5173\u7cfb\u6570\u636e\u5e93\u63d0\u4f9b\u7edf\u4e00\u8bbf\u95ee\uff0c\u5b83\u7531\u4e00\u7ec4\u7528Java\u8bed\u8a00\u7f16\u5199\u7684\u7c7b\u548c\u63a5\u53e3\u7ec4\u6210\u3002JDBC\u63d0\u4f9b\u4e86\u4e00\u79cd\u57fa\u51c6\uff0c\u636e\u6b64\u53ef\u4ee5\u6784\u5efa\u66f4\u9ad8\u7ea7\u7684\u5de5\u5177\u548c\u63a5\u53e3\uff0c\u4f7f\u6570\u636e\u5e93\u5f00\u53d1\u4eba\u5458\u80fd\u591f\u7f16\u5199\u6570\u636e\u5e93\u5e94\u7528\u7a0b\u5e8f\uff0c

\u6269\u5c55\u8d44\u6599\uff1a
\u5bf9\u672c\u5730\u6570\u636e\u5e93\u6765\u8bf4\uff0c\u901a\u5e38\u8981\u5728User DSN(\u7528\u6237DSN)\u9009\u9879\u5361\u4e0a\u521b\u5efa\u4e00\u4e2a\u9879;\u5bf9\u8fdc\u7a0b\u6570\u636e\u5e93\uff0c\u5219\u5728System DSN(\u7cfb\u7edfDSN)\u9009\u9879\u5361\u4e0a\u521b\u5efa\u3002\u4efb\u4f55\u60c5\u51b5\u4e0b\uff0c\u90fd\u4e0d\u80fd\u5728User DSN(\u7528\u6237DSN)\u548cSystem DSN(\u7cfb\u7edfDSN)\u9009\u9879\u5361\u4e0a\u521b\u5efa\u540c\u540d\u7684\u9879\u3002\u901a\u5e38\u4f1a\u51fa\u73b0\u7684\u95ee\u9898\u662f\uff0c\u4f60\u8bd5\u56fe\u8bbf\u95ee\u8fdc\u7a0b\u6570\u636e\u5e93\uff0c\u4f46\u4eceWeb\u670d\u52a1\u5668\u83b7\u5f97\u4e86\u975e\u5e38\u5947\u602a\u548c\u77db\u76fe\u7684\u9519\u8bef\u6d88\u606f\u3002\u4e8b\u5b9e\u4e0a\uff0c\u5982\u679c\u5728\u8fdc\u7a0b\u6570\u636e\u5e93\u8bbf\u95ee\u671f\u95f4\u5f97\u5230\u4e86\u5947\u602a\u7684\u9519\u8bef\u6d88\u606f\uff0c\u90a3\u4e4832\u4f4dODBC\u5c0f\u7a0b\u5e8f\u662f\u9996\u5148\u5e94\u8be5\u67e5\u770b\u7684\u5730\u65b9\u4e4b\u4e00\u3002
\u53c2\u8003\u8d44\u6599\uff1aODBC\u5f00\u653e\u6570\u636e\u5e93\u4e92\u8fde-\u767e\u5ea6\u767e\u79d1
jdbc-\u767e\u5ea6\u767e\u79d1

\u662f\u4e24\u4e2a\u6570\u636e\u5e93\u8054\u63a5\u7684\u4e00\u4e2a\u516c\u7528\u63a5\u53e3\u3002

----目前许多数据库系统均支持SQL,对于由SQL数据库组成的异构数据库系统,JDBC和ODBC为访问其异构成员提供了统一的方式,也为各异构成员之间的协作和多个成员之上的操作打下了基础。本文简单介绍了JDBC和ODBC对各个异构的数据库进行统一访问和协作的原理及其应用。

ODBC
----ODBC(Open DataBase Connectivity)是微软倡导的、当前被业界广泛接受的、用于数据库访问的应用程序编程接口(API),它以X/Open和 ISO/IEC的调用级接口(CLI)规范为基础,并使用结构化查询语言(SQL)作为其数据库访问语言。 ODBC总体结构有四个组件:
----· 应用程序 执行处理并调用ODBC API函数,以提交 SQL语句并检索结果。

----· 驱动程序管理器(Driver Manager) 根据应用程序需要加载/卸载驱动程序,处理ODBC函数调用,或把它们传送到驱动程序。

----· 驱动程序 处理ODBC函数调用,提交SQL请求到一个指定的数据源,并把结果返回到应用程序。如果有必要,驱动程序修改一个应用程序请求,以使请求与相关的DBMS支持的语法一致。

----· 数据源 包括用户要访问的数据及其相关的操作系统、DBMS及用于访问DBMS的网络平台。

----ODBC驱动程序的使用把应用程序从具体的数据库调用中隔离开来,驱动程序管理器针对特定数据库的各个驱动程序进行集中管理,并向应用程序提供统一的标准接口,这就为ODBC的开放性奠定了基础。

----数据库独立性

----ODBC是为最大的互用性而设计的,要求一个应用程序有用相同的源代码(不用重新编译或重新链接)访问不同的数据库管理系统(DBMS)的能力。

----ODBC定义了一个标准的调用层接口(CLI)。这包含 X/Open和ISO/IEC的CLI规范中的所有函数,并提供应用程序普遍需要的附加函数。每个支持ODBC的DBMS需要不同的库或驱动程序,驱动程序实现ODBC API中的函数。当需要改变驱动程序时,应用程序不需要重新编译或者重新链接,只是动态加载新的驱动程序,并调用其中的函数即可。如果要同时访问多个DBMS系统,应用程序可加载多个驱动程序。如何支持驱动程序取决于操作系统,例如,在Windows操作系统上,驱动程序是动态链接库(DLL)。

----使用相同源代码的应用程序访问不同的DBMS,体现了 ODBC的数据库独立性。

----对数据库特殊功能的支持

----各个DBMS参照的标准、提供的功能不尽相同,应用程序如何以统一的接口使用各个DBMS特有的功能呢?

----一方面,ODBC为所有DBMS功能都定义了公共接口。这些DBMS功能比多数DBMS支持的更多,但只要求驱动程序实现这些功能的一个子集。另一方面,ODBC定义了API和SQL语法一致层,它规定驱动程序应支持的基本功能。 ODBC还提供两个函数(SQLGetInfo和SQLGetFunctions)返回关于驱动程序和DBMS能力的一般信息及驱动程序支持的函数列表。因此,应用程序可以检查DBMS支持的特殊功能。

----这样,编写应用程序时,就可以检查并自动使用各个驱动程序对应的DBMS所支持的特殊功能。这样做的优点是当增加DBMS支持的功能时,应用程序不需要改变,只需安装更新的驱动程序,应用程序便可以自动发现并使用这些功能。

----互操作能力

----通过使用多个驱动程序可以同时访问多个DBMS系统。 ODBC提供的Driver Manager实现所有的ODBC函数,多数是传递调用给驱动程序中的ODBC 函数,并静态链接应用程序,或在应用程序运行时加载它。这样,应用程序在Driver Manager 中按名调用驱动ODBC函数,而不是通过每个驱动程序中的指针。当应用程序需要通过特定的驱动程序时,它首先需要一个标识驱动程序的连接句柄。Driver Manager加载驱动程序,并存储每个驱动程序中的函数地址。要使驱动程序调用一个ODBC函数,可在应用程序调用 Driver Manager中的函数,并为驱动程序传送连接句柄,然后Driver Manager使用以前存储的地址来调用函数。

----ODBC可以同时连接到多个DBMS,解决了同时访问多个DBMS的问题,提供了异构成员数据库之间互操作的能力。

JDBC
----JDBC(Java DataBase Connectivity)是Java与数据库的接口规范,JDBC定义了一个支持标准SQL功能的通用低层的应用程序编程接口(API),它由Java 语言编写的类和接口组成,旨在让各数据库开发商为Java程序员提供标准的数据库API。 JDBC API定义了若干Java中的类,表示数据库连接、SQL指令、结果集、数据库元数据等。它允许Java程序员发送SQL指令并处理结果。通过驱动程序管理器,JDBC API可利用不同的驱动程序连接不同的数据库系统。
----JDBC与ODBC都是基于X/Open的SQL调用级接口, JDBC的设计在思想上沿袭了ODBC,同时在其主要抽象和SQL CLI实现上也沿袭了ODBC,这使得JDBC容易被接受。JDBC的总体结构类似于ODBC,也有四个组件:应用程序、驱动程序管理器、驱动程序和数据源。

----JDBC保持了ODBC的基本特性,也独立于特定数据库。使用相同源代码的应用程序通过动态加载不同的JDBC驱动程序,可以访问不同的DBMS。连接不同的DBMS时,各个DBMS之间仅通过不同的URL进行标识。JDBC的 DatabaseMetaData接口提供了一系列方法,可以检查DBMS对特定特性的支持,并相应确定有什么特性,从而能对特定数据库的特性予以支持。与ODBC一样,JDBC也支持在应用程序中同时建立多个数据库连接,采用JDBC可以很容易地用SQL语句同时访问多个异构的数据库,为异构的数据库之间的互操作奠定基础。

----但是,JDBC除了具有ODBC的上述特点外,更具有对硬件平台、操作系统异构性的支持。这主要是因为ODBC使用的是C语言,而JDBC使用的是Java语言。Java语言具有与平台无关、移植性强、安全性高、稳定性好、分布式、面向对象等众多优点,而JDBC确保了“100%纯Java”的解决方案,利用Java的平台无关性, JDBC应用程序可以自然地实现跨平台特性,因而更适合于Internet上异构环境的数据库应用。

----此外,JDBC驱动程序管理器是内置的,驱动程序本身也可通过Web浏览器自动下载,无须安装、配置;而ODBC驱动程序管理器和ODBC驱动程序必须在每台客户机上分别安装、配置。

JDBC和ODBC在Internet上的应用
----JDBC和ODBC由于具有数据库独立性甚至平台无关性,因而对Internet上异构数据库的访问提供了很好的支持。
----在Internet上访问数据库通常采用三层模式。以JDBC为例,在三层模式中客户端的Java Applet主要作为用户界面,它不直接与数据库交换信息,而是通过自定义的应用层网络协议与应用服务器交互,应用服务器通过JDBC与数据库服务器交换信息,并实现应用逻辑。DM3的JDBC和ODBC驱动程序支持目前流行的ASP和JSP技术,可以分别借助ODBC和JDBC同时访问Internet上多个异构的数据库。

----ASP是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。ASP使用VBScript之类的脚本语言,它在HTML代码中嵌入某种程序代码,由HTML代码负责描述信息的显示样式,由嵌入的程序代码来描述处理逻辑。在ASP 下,VBScript代码被ASP引擎在Web服务器端解释执行,执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。这里,VBScript代码可以通过ODBC访问多个异构的数据库。

----JSP是一种基于Java Servlet的Web开发技术,它和ASP 非常相似,但又有区别:在JSP下,嵌入HTML页面的程序代码是Java代码;页面中嵌入的程序代码被编译成Servlet(这种编译操作仅在对JSP页面的第一次请求时发生)并由Java 虚拟机执行。这里Java代码可以通过JDBC访问多个异构的数据库,其平台无关性特别好。当前,Internet上的数据库应用已越来越多,JDBC和ODBC必将在Internet上的异构数据库访问中发挥重要的作用。

JDBC:面向关系的数据库ODBC:面向对象的数据库

  • 浠涔堟槸JDBC?浠涔堟槸ODBC?浠ュ強瀹冧滑鏈変粈涔堝尯鍒?(鍏蜂綋鐐,璋㈣阿?)
    绛旓細1.JDBC涓嶰DBC閮芥槸鍩轰簬X/Open鐨凷QL璋冪敤绾ф帴鍙 2.JDBC寰堝璁捐鎬濇兂娌胯浜哋DBC,鍖呮嫭璁稿鎶借薄鍜孲QL CLI瀹炵幇 3.JDBC鐨勬讳綋缁撴瀯绫讳技浜嶰DBC,鏈夊洓涓粍浠讹細搴旂敤绋嬪簭銆侀┍鍔ㄧ▼搴忕鐞嗗櫒銆侀┍鍔ㄧ▼搴忓拰鏁版嵁婧,宸ヤ綔鍘 鐞嗕害澶т綋鍚屼簬ODBC.1.JDBC淇濇寔浜哋DBC鐨勫熀鏈壒鎬,涔熺嫭绔嬩簬鐗瑰畾鏁版嵁搴.2.浣跨敤鐩稿悓婧愪唬鐮佺殑搴旂敤绋嬪簭閫氳繃...
  • jdbc涓odbc鐨鍖哄埆
    绛旓細JDBC 鏄 鈥淛ava 鏁版嵁搴撹繛鎺 (Java Database Connectivity)鈥濓級銆傚畠鐢变竴缁勭敤 Java 缂栫▼璇█缂栧啓鐨勭被鍜屾帴鍙g粍鎴愩侸DBC 涓哄伐鍏/鏁版嵁搴撳紑鍙戜汉鍛樻彁渚涗簡涓涓爣鍑嗙殑 API锛屼娇浠栦滑鑳藉鐢ㄧ函 Java API 鏉ョ紪鍐欐暟鎹簱搴旂敤绋嬪簭銆侽DBC(Open Database Connectivity),鍗冲紑鏀炬暟鎹簱浜掕仈銆侽DBC鍩轰簬SQL,骞舵妸瀹冧綔涓鸿闂暟鎹...
  • 浠涔堟槸JDBC?浠涔堟槸ODBC?浠ュ強瀹冧滑鏈変粈涔堝尯鍒?(鍏蜂綋鐐,璋㈣阿?)
    绛旓細涓嶰DBC涓鏍,JDBC涔熸敮鎸佸湪搴旂敤绋嬪簭涓悓鏃跺缓绔嬪涓暟鎹簱杩炴帴,閲囩敤JDBC鍙互寰堝鏄撳湴鐢⊿QL璇彞鍚屾椂璁块棶澶氫釜寮傛瀯鐨勬暟鎹簱,涓哄紓鏋勭殑鏁版嵁搴撲箣闂寸殑浜掓搷浣滃瀹氬熀纭銆 ---浣嗘槸,JDBC闄や簡鍏锋湁ODBC鐨涓婅堪鐗圭偣澶,鏇村叿鏈夊纭欢骞冲彴銆佹搷浣滅郴缁熷紓鏋勬х殑鏀寔銆傝繖涓昏鏄洜涓篛DBC浣跨敤鐨勬槸C璇█,鑰孞DBC浣跨敤鐨勬槸Java璇█銆侸ava璇█鍏锋湁涓庡钩鍙...
  • 璁$畻鏈轰腑鐨勭畝绉JDBC鍜ODBC鍒嗗埆鏄浠涔鎰忔?
    绛旓細JDBCJDBC(Java DataBase Connectivity)鏄疛ava涓庢暟鎹簱鐨勬帴鍙h鑼锛孞DBC瀹氫箟浜嗕竴涓敮鎸佹爣鍑哠QL鍔熻兘鐨勯氱敤浣庡眰鐨勫簲鐢ㄧ▼搴忕紪绋嬫帴鍙(API)锛屽畠鐢盝ava 璇█缂栧啓鐨勭被鍜屾帴鍙g粍鎴愶紝鏃ㄥ湪璁╁悇鏁版嵁搴撳紑鍙戝晢涓篔ava绋嬪簭鍛樻彁渚涙爣鍑嗙殑鏁版嵁搴揂PI銆 JDBC API瀹氫箟浜嗚嫢骞睯ava涓殑绫锛岃〃绀烘暟鎹簱杩炴帴銆丼QL鎸囦护銆佺粨鏋滈泦銆佹暟鎹簱鍏...
  • 鈥jdbc鈥濆拰鈥odbc鈥濈殑鍖哄埆鏄浠涔?
    绛旓細JDBC鏄墽琛孲QL璇彞鐨凧ava API銆侸DBC鏈韩鏄竴涓骇鍝佺殑鍟嗘爣鍚,浣嗗畠涔熷彲琚湅浣滀负"Ja va Database Connecivity(Java鏁版嵁搴撹繛鎺)"銆傚畠鐢变竴缁勭敤Java璇█缂栧啓鐨勭被涓庢帴鍙g粍鎴愩侸DBC宸鎴愪负涓绉嶄緵宸ュ叿/鏁版嵁搴撳紑鍙戣呬娇鐢ㄧ殑鏍囧噯API,鐢ㄦ埛鍙互鐢ㄧ函Java API鏉ョ紪鍐欐暟鎹簱 搴旂敤銆1)Java涓嶈兘鐩存帴浣跨敤ODBC銆傚洜涓篛DBC浣跨敤...
  • ODBC鍜JDBC鏄鍋浠涔鐨?
    绛旓細鐢ODBC 鍙互璁块棶鍚勭被璁$畻鏈轰笂鐨凞B鏂囦欢锛岀敋鑷宠闂Excel 琛ㄥ拰ASCI I鏁版嵁鏂囦欢杩欑被闈炴暟鎹簱瀵硅薄銆JDBC锛欽DBC锛圝ava DataBase Connectivity,java鏁版嵁搴撹繛鎺ワ級鏄竴绉嶇敤浜庢墽琛孲QL璇彞鐨凧ava API锛屽彲浠ヤ负澶氱鍏崇郴鏁版嵁搴撴彁渚涚粺涓璁块棶锛屽畠鐢变竴缁勭敤Java璇█缂栧啓鐨勭被鍜屾帴鍙g粍鎴愩侸DBC鎻愪緵浜嗕竴绉嶅熀鍑嗭紝鎹鍙互鏋勫缓鏇...
  • odbc鍜jdbc鐨鍖哄埆鏄浠涔
    绛旓細鏁呬粠杩欐柟闈㈡潵璇达紝JDBC鏁版嵁搴撳惎鍔ㄧ▼搴忚姣擮DBC绠鏄撶悊瑙c2.JDBC鏁版嵁搴撻┍鍔ㄧ▼搴忔槸闈㈠悜瀵硅薄鐨勩侸DBC瀹屽叏閬靛惊Java璇█鐨勪紭鑹壒鎬с傞氬父鎯呭喌涓嬶紝鍙鏈塉ava鍔熻兘闇璁捐鍩虹鐨勭敤鎴烽兘鑳藉湪鏈鐭椂闂村唴浜嗚ВJDBC椹卞姩绋嬪簭鐨勬灦鏋勶紝杈冮噺绠鏄撲笂鎵嬶紝鑳借交鑰屾槗涓剧殑寮鍙戝嚭寮烘倣鐨勬暟鎹簱瀹為檯杩愮敤绋嬪簭銆傝ODBC鐨璇濓紝鐢变簬鍏跺唴閮ㄥ姛鑳...
  • JDBC-ODBC 鏄竴涓蒋浠惰繕鏄浠涔涓滆タ,,闇瑕佸畨瑁呭悧
    绛旓細绗竴涓蹇 锛JDBC 鏄 Java 鐨勪笢瑗匡紝ODBC 鏄疻indows涓婄殑涓滆タ 涓や釜涓滆タ锛岄兘鏄笌鏁版嵁搴撴湁鍏崇殑锛屾病鏈夊寘鍚叧绯伙紝灏卞儚 AK47 鍜 M4 鐨勫叧绯讳竴鏍枫傜浜屼釜姒傚康锛 JDBC 鏄疛ava 鐨勬暟鎹簱鎿嶄綔鏍囧噯搴擄紝 娉ㄦ剰鏄爣鍑嗭紝涓嶆槸鍏蜂綋鐨勫疄鐜版垨鑰呴┍鍔ㄣ傚悓鐞 ODBC 涔熸槸Windows 涓婄殑鏍囧噯搴撱傜涓変釜锛屽悇涓暟鎹簱鍘傚浼氬噯...
  • 浠涔堟槸JDBC?
    绛旓細JDBC锛圝ava DataBase Connectivity,java鏁版嵁搴撹繛鎺ワ級鏄竴绉嶇敤浜庢墽琛孲QL璇彞鐨凧ava API锛屽彲浠ヤ负澶氱鍏崇郴鏁版嵁搴撴彁渚涚粺涓璁块棶锛屽畠鐢变竴缁勭敤Java璇█缂栧啓鐨勭被鍜屾帴鍙g粍鎴愩侸DBC鎻愪緵浜嗕竴绉嶅熀鍑嗭紝鎹鍙互鏋勫缓鏇撮珮绾х殑宸ュ叿鍜屾帴鍙o紝浣挎暟鎹簱寮鍙戜汉鍛樿兘澶熺紪鍐欐暟鎹簱搴旂敤绋嬪簭锛屽悓鏃讹紝JDBC涔熸槸涓晢鏍囧悕銆
  • 涓浠涔浣跨敤JDBC鏁版嵁搴撶紪绋
    绛旓細鍦↗DBC鏁版嵁搴撶紪绋嬩腑缁忓父瑕佷娇鐢∣DBC銆傛墍浠ワ紝鍦ㄨ杩JDBC鐨椹卞姩绋嬪簭鍒嗙被涔嬪墠锛岄鍏堜粙缁浠涔堟槸ODBC銆侽DBC鏄寚Open DataBase Connectivity锛屽嵆寮鏀炬暟鎹簱浜掕繛锛屽畠寤虹珛浜嗕竴缁勮鑼冿紝骞朵笖鎻愪緵浜嗕竴缁勫鏁版嵁搴撹闂殑鏍囧噯API锛堝簲鐢ㄧ▼搴忕紪绋嬫帴鍙o級锛岃繖浜汚PI鍒╃敤SQL鏉ュ畬鎴愬叾澶ч儴鍒嗕换鍔°侽DBC涔熸彁渚涗簡瀵筍QL鐨勬敮鎸併侸DBC椹卞姩...
  • 扩展阅读:javascript ... spring mvc ... java jdbc ... jdbc基本过程 ... oracle jdbc ... jdbc的基本功能 ... ajax ... jdbc的实现步骤 ... 原生jdbc步骤 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网