嵌入式sql和JDBC、ODBC什么区别呢? jdbc和odbc区别

jdbc\u4e0eodbc\u6709\u4ec0\u4e48\u533a\u522b\uff1f

\u533a\u522b\uff1a
JDBC\u6bd4ODBC\u66f4\u5bb9\u6613\u7406\u89e3\uff1b
JDBC\u6570\u636e\u5e93\u542f\u52a8\u7a0b\u5e8f\u5728\u8bbe\u8ba1\u7684\u65f6\u95f4\u5c31\u5305\u542b\u4e86\u5927\u90e8\u4efd\u57fa\u672c\u6570\u636e\u64cd\u4f5c\u529f\u80fd\uff0c\u4e3a\u6b64\u5728\u7f16\u5199\u4e00\u4e9b\u5e38\u89c4\u7684\u6570\u636e\u5e93\u64cd\u4f5c\u8bed\u53e5\u65f6\uff0c\u5982\u67e5\u8be2\u3001\u66f4\u65b0\u7b49\u7b49\uff0c\u5176\u6240\u9700\u6c42\u7684\u6e90\u4ee3\u7801\u6bd4 ODBC\u8981\u5c11\u7684\u591a\u3002\u6545\u4ece\u8fd9\u65b9\u9762\u6765\u8bf4\uff0cJDBC\u6570\u636e\u5e93\u542f\u52a8\u7a0b\u5e8f\u8981\u6bd4ODBC\u7b80\u6613\u7406\u89e3\u3002
2.JDBC\u6570\u636e\u5e93\u9a71\u52a8\u7a0b\u5e8f\u662f\u9762\u5411\u5bf9\u8c61\u7684
JDBC\u9a71\u52a8\u7a0b\u5e8f\u7684\u67b6\u6784\uff0c\u8f83\u91cf\u7b80\u6613\u4e0a\u624b\uff0c\u80fd\u8f7b\u800c\u6613\u4e3e\u7684\u5f00\u53d1\u51fa\u5f3a\u608d\u7684\u6570\u636e\u5e93\u5b9e\u9645\u8fd0\u7528\u7a0b\u5e8f\u3002\u800cODBC\u7684\u8bdd\uff0c\u7531\u4e8e\u5176\u5185\u90e8\u529f\u80fd\u590d\u6742\uff0c\u6e90\u4ee3\u7801\u7f16\u5199\u8981\u6c42\u9ad8\u3002\u4e3a\u6b64\u5373\u4f7f\u662f\u4e00\u4e2a\u7684C\u8bed\u8a00\u7684\u9ad8\u624b\uff0c\u4ecd\u7136\u9700\u6c42\u82b1\u8d39\u4e0d\u5c11\u7684\u65f6\u95f4\u53bb\u4e86\u89e3\u90a3\u4e2a\u6570\u636e\u5e93\u542f\u52a8\u7a0b\u5e8f;\u5728\u7f16\u5199\u6e90\u4ee3\u7801\u7684\u65f6\u95f4\uff0c\u8fd8\u79bb\u4e0d\u5f00\u6709\u5173\u7684\u53c2\u8003\u4e66\u672c\u3002
3.JDBC\u7684\u79fb\u690d\u6027\u8981\u6bd4ODBC\u8981\u597d
\u901a\u5e38\u60c5\u51b5\u4e0b\uff0c\u5b89\u88c5\u5b8cODBC\u9a71\u52a8\u7a0b\u5e8f\u4e4b\u540e\uff0c\u8fd8\u9700\u6c42\u7ecf\u8fc7\u786e\u5b9a\u7684\u914d\u7f6e\u624d\u80fd\u591f\u5e94\u7528\u3002\u800c\u4e0d\u76f8\u540c\u7684\u914d\u7f6e\u5728\u4e0d\u76f8\u540c\u6570\u636e\u5e93\u670d\u52a1\u5668\u4e4b\u95f4\u4e0d\u80fd\u591f\u901a\u7528\u3002\u4e5f\u90a3\u662f\u8bf4\uff0c\u88c5\u4e00\u6b21\u9700\u6c42\u914d\u7f6e\u4e00\u6b21\u3002\u4f46\u662fJDBC\u6570\u636e\u5e93\u9a71\u52a8\u7a0b\u5e8f\u5219\u4e0d\u76f8\u540c\u3002\u5047\u5982\u91c7\u7528JDBC\u6570\u636e\u5e93\u9a71\u52a8\u7a0b\u5e8f\u7684\u8bdd\uff0c\u5219\u53ea\u9700\u8981\u9009\u53d6\u9002\u5f53\u7684 JDBC\u6570\u636e\u5e93\u9a71\u52a8\u7a0b\u5e8f\uff0c\u5c31\u4e0d\u9700\u8981\u989d\u5916\u7684\u914d\u7f6e\u3002
\u4e24\u8005\u4e4b\u95f4\u8054\u7cfb\uff1a
JDBC\u548cODBC\u90fd\u662f\u7528\u6765\u8fde\u63a5\u6570\u636e\u5e93\u7684\u542f\u52a8\u7a0b\u5e8f\uff0cJDBC\u548cODBC\u7531\u4e8e\u5177\u6709\u6570\u636e\u5e93\u72ec\u7acb\u6027\u751a\u81f3\u5e73\u53f0\u65e0\u5173\u6027\uff0c\u56e0\u800c\u5bf9Internet\u4e0a\u5f02\u6784\u6570\u636e\u5e93\u7684\u8bbf\u95ee\u63d0\u4f9b\u4e86\u5f88\u597d\u7684\u652f\u6301\u3002

ODBC(Open Database Connectivity\uff0c\u5f00\u653e\u6570\u636e\u5e93\u4e92\u8fde)\u662f\u5fae\u8f6f\u516c\u53f8\u5f00\u653e\u670d\u52a1\u7ed3\u6784(WOSA\uff0cWindows Open Services Architecture)\u4e2d\u6709\u5173\u6570\u636e\u5e93\u7684\u4e00\u4e2a\u7ec4\u6210\u90e8\u5206\uff0c\u5b83\u5efa\u7acb\u4e86\u4e00\u7ec4\u89c4\u8303\uff0c\u5e76\u63d0\u4f9b\u4e86\u4e00\u7ec4\u5bf9\u6570\u636e\u5e93\u8bbf\u95ee\u7684\u6807\u51c6API\uff08\u5e94\u7528\u7a0b\u5e8f\u7f16\u7a0b\u63a5\u53e3\uff09\u3002\u8fd9\u4e9bAPI\u5229\u7528SQL\u6765\u5b8c\u6210\u5176\u5927\u90e8\u5206\u4efb\u52a1\u3002ODBC\u672c\u8eab\u4e5f\u63d0\u4f9b\u4e86\u5bf9SQL\u8bed\u8a00\u7684\u652f\u6301\uff0c\u7528\u6237\u53ef\u4ee5\u76f4\u63a5\u5c06SQL\u8bed\u53e5\u9001\u7ed9ODBC
JDBC\u662f\u6267\u884cSQL\u8bed\u53e5\u7684Java API\u3002JDBC\u672c\u8eab\u662f\u4e00\u4e2a\u4ea7\u54c1\u7684\u5546\u6807\u540d,\u4f46\u5b83\u4e5f\u53ef\u88ab\u770b\u4f5c\u4e3a"Ja
va Database Connecivity(Java\u6570\u636e\u5e93\u8fde\u63a5)"\u3002\u5b83\u7531\u4e00\u7ec4\u7528Java\u8bed\u8a00\u7f16\u5199\u7684\u7c7b\u4e0e\u63a5\u53e3\u7ec4\u6210\u3002
JDBC\u5df2\u6210\u4e3a\u4e00\u79cd\u4f9b\u5de5\u5177/\u6570\u636e\u5e93\u5f00\u53d1\u8005\u4f7f\u7528\u7684\u6807\u51c6API,\u7528\u6237\u53ef\u4ee5\u7528\u7eafJava API\u6765\u7f16\u5199\u6570\u636e\u5e93
\u5e94\u7528\u3002

1)Java\u4e0d\u80fd\u76f4\u63a5\u4f7f\u7528ODBC\u3002\u56e0\u4e3aODBC\u4f7f\u7528C\u8bed\u8a00\u63a5\u53e3,\u5982\u679c\u8ba9Java\u6765\u8c03\u7528\u672c\u673aC\u4ee3\u7801\u7684\u8bdd
,\u90a3\u4e48\u4f1a\u5728\u5b89\u5168\u3001\u5c5e\u6027\u3001\u5065\u58ee\u6027\u3001\u5e94\u7528\u7684\u53ef\u79fb\u690d\u6027\u7b49\u65b9\u9762\u5e26\u6765\u56f0\u96be\u3002
(2)\u4e0d\u5e0c\u671b\u628aODBC C API\u9010\u5b57\u5730\u7ffb\u8bd1\u6210Java API\u3002\u4f8b\u5982,ODBC\u4f7f\u7528\u4e86\u5927\u91cf\u7684\u6613\u4e8e\u51fa\u9519\u7684\u6307
\u9488,\u800cJava\u53d6\u6d88\u4e86\u8fd9\u79cd\u4e0d\u5b89\u5168\u7684\u6307\u9488\u3002\u73b0\u5728\u901a\u8fc7JDBC,\u628aODBC\u7ffb\u8bd1\u6210\u5177\u6709Java\u98ce\u683c\u7684\u9762\u5411\u5bf9\u8c61
\u7684\u63a5\u53e3\u3002
(3)ODBC\u96be\u4ee5\u5b66\u4e60\u3002ODBC\u628a\u7b80\u5355\u529f\u80fd\u4e0e\u9ad8\u7ea7\u529f\u80fd\u6df7\u6742\u5728\u4e00\u8d77,\u5373\u4fbf\u662f\u7b80\u5355\u7684\u67e5\u8be2\u4e5f\u4f1a\u5e26\u6765
\u590d\u6742\u7684\u4efb\u9009\u9879\u3002\u800cJDBC\u7684\u8bbe\u8ba1\u4f7f\u5f97\u7b80\u5355\u7684\u4e8b\u60c5\u7528\u7b80\u5355\u7684\u505a\u6cd5,\u4ec5\u5728\u5fc5\u8981\u65f6\u624d\u8ba9\u7528\u6237\u4f7f\u7528\u9ad8\u7ea7
\u529f\u80fd\u3002
(4)JDBC\u7684Java API\u63d0\u4f9b"\u7eafJava"\u7684\u89e3\u51b3\u529e\u6cd5\u3002\u5f53\u4f7f\u7528ODBC\u65f6,ODBC\u9a71\u52a8\u5668\u7ba1\u7406\u7a0b\u5e8f\u4e0e\u9a71
\u52a8\u5668\u5fc5\u987b\u624b\u5de5\u5730\u88c5\u5165\u5230\u6bcf\u67b6\u5ba2\u6237\u673a\u4e0a\u3002\u800cJDBC\u9a71\u52a8\u5668\u5168\u90e8\u662f\u7528Java\u7f16\u5199\u7684,JDBC\u4ee3\u7801\u5219\u5728\u6240
\u6709Java\u5e73\u53f0(\u4ece\u7f51\u7edc\u8ba1\u7b97\u673a\u5230\u4e3b\u673a)\u4e0a\u90fd\u53ef\u81ea\u52a8\u5b89\u88c5,\u5e76\u4e14\u662f\u53ef\u79fb\u690d\u7684\u548c\u5b89\u5168\u7684\u3002

初次接触嵌入式数据库(Embedded Database)可能对这个概念总不是很清楚,它究竟与数据库服务器(Database Server)有什么区别,它们又分别适用于那些应用场景呢,这是需要解决的问题。
在谈区别之前,先来个感性认识。像Oracle、Sybase、MySQL和SQL Server这些大家熟知的数据库都属于数据库服务器(当然不排除某些也提供嵌入式版本),而像SQLite、Berkeley DB等属于嵌入式数据库。
嵌入式数据库跟数据库服务器最大的区别在于它们运行的地址空间不同。通常,数据库服务器独立地运行一个守护进程(daemon),而嵌入式数据库与应用程序运行在同一个进程。
数据库服务器的架构如下:

图中的数据库客户端通常通过数据库驱动程序如JDBC、ODBC等访问数据库服务器,数据库服务器再操作数据库文件。
数据库服务是一种客户端服务器模式,客户端和服务器是完全两个独立的进程。它们可以分别位于在不同的计算机甚至网络中。客户端和服务器通过TCP/IP进行通讯。这种模式将数据与应用程序分离,便于对数据访问的控制和管理。

嵌入式数据库架构如下:

嵌入式数据库不需要数据库驱动程序,直接将数据库的库文件链接到应用程序中。应用程序通过API访问数据库,而不是TCP/IP。因此,嵌入式数据库的部署是与应用程序在一起的。比如常见的版本控制器SubVersion,它所用的嵌入式数据库就是跟应用程序放在一起的。
数据库服务器和嵌入式对比如下:
(1)数据库服务器通常允许非开发人员(DBA,数据库库管理员)对数据库进行操作,而在嵌入式数据中通常只允许应用程序对其进行访问和控制。
(2)数据库服务器将数据与程序分离,便于对数据库访问的控制。而嵌入式数据库则将数据的访问控制完全交给应用程序,由应用程序来进行控制。
(3)数据库服务器需要独立的安装、部署和管理,而嵌入式数据通常和应用程序一起发布,不需要单独地部署一个数据库服务器,具有程序携带性的特点。
从上面的对比可以看出,数据库服务器和嵌入式数据库各自具有自己的特点,它们分别适用于不同的应用场景。
如果你要存储的数据的访问比较复杂,比如跨网络、复杂的访问控制策略,又需要数据库管理员经常进行管理和维护,那么数据库服务器就非常适合你。
如果你要存储的数据的访问之需要应用程序控制即可,并且基本不需要人工干预,而且需要对数据的访问简单、快速有效,那么嵌入式数据库适合你。
另外,你是否有过这样的情况:存储的数据量不是很大,如果搞个一般的数据库来感觉太浪费了,而且如果发布这个程序还非常麻烦,这时那些微小的嵌入式数据库可能非常适合你(如某些电子邮件客户端就采用的是嵌入式数据库)。

jdbc是数据库服务驱动程序,需要加载到java类中;而sql提供数据库服务

扩展阅读:sqlite format 3 ... odbc sqlserver ... oracle jdbc ... 嵌入式学习路线 ... windows配置odbc数据源 ... jdbc连接postgresql ... sqlite python ... mysql ... jdbc的过程 ...

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