| 发表于:2007-11-14 15:20:291楼 得分:5 |
odbc(open database connectivity : 开放数据库连接) odbc 总体结构 应用程序 执行处理并调用odbc函数,提交sql语句并检索结果 driver manager 管理应用程序和驱动程序之间的通讯,根据应用程序加载并卸载驱动程序, 处理odbc函数调用,获把它们传送到驱动程序 驱动程序 处理odbc函数调用,把sql语句提交到数据源,并返回结果到应用程序,如有必要, 驱动程序修改一个应用程序请求,以使请求与相关的dbms支持的语法一致 数据源 用户要访问的dbms,以及相关os application ¦ ¦ driver manager ¦ ¦ ¦ ¦ ¦ ¦ 驱动程序 驱动程序 驱动程序 ¦ ¦ ¦ 数据源 数据源 数据源 结合现实的高层开发工作流程如下: 1.数据应用系统首先获得在odbc数据源管理器中建立的dsn(存储了与数据提供程序连接的详细信息包含数据库位置、数据库类型及相应的odbc驱动程序等),然后 driver manager依赖一种叫做数据库独立的交流(database indepedent communications technology)的技术与数据源建立联系(其中涉及客户端和服务器端多种agent对象的问题,详情不叙,可参见下图). 2.driver mangaer调用特定odbc驱动程序将odbc标准api转化为适用于具体数据库系统的函数调用(数据库特征不同之处也在这里翻译如sql语法差异等),然后经由客户端的request agent发送到数据源. 3.数据源database agent处理操作,将结果返回到客户端的request agent,再向上经driver(这里会有翻译和标准化错误码的行为)、driver mangaer返回给application. 需要说明的是定义和操作光标、维护事务、负责任何与访问数据源的必要软件层进行交互(包括与底层网络或文件系统接口的软件)等行为亦由驱动程序完成. 结合odbc api调用顺序描叙工作流程:初始化(分配环境---> 分配连接句柄---> 与服务器连接---> 分配语句句柄)--------> sql处理(语句处理和检索部分)--------> 终止(释放语句句柄---> 与服务器断开---> 释放连接句柄---> 释放环境). jdbc(java database connectivity : java数据库连接) jdbc设计很多借鉴于odbc: 1.jdbc与odbc都是基于x/open的sql调用级接口 2.jdbc很多设计思想沿袭了odbc,包括许多抽象和sql cli实现 3.jdbc的总体结构类似于odbc,有四个组件:应用程序、驱动程序管理器、驱动程序和数据源,工作原 理亦大体同于odbc. 1.jdbc保持了odbc的基本特性,也独立于特定数据库. 2.使用相同源代码的应用程序通过动态加载不同的jdbc驱动程序,可以访问不同的dbms.连接不同的 dbms时,各个dbms之间仅通过不同的url进行标识. 3.jdbc的databasemetadata接口提供了一系列方法,可以检查dbms对特定特性的支持,并相应确定有什 么特性,从而能对特定数据库的特性予以支持 4.jdbc也支持在应用程序中同时建立多个数据库连接,采用jdbc可以很容易地用sql语句同时访问多个 异构的数据库,为异构的数据库之间的互操作奠定基础 java的驱动解决方案有四种:1.jdbc-odbc bridge 2.本机api/集团式java驱动程序 3.网络协议/全java 4.本机协议/全java | | |
|