ODBC

news/2024/5/18 23:11:28 标签: 数据库, database, jdbc, manager, java, sql

 http://topic.csdn.net/u/20080511/14/2ad622d3-7132-4d3b-9d6a-1abee76762e0.html

 

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 


http://www.niftyadmin.cn/n/1221567.html

相关文章

什么是接口

声明: 摘自他人 interface,接口,其实如果用国人的思维方式来理解不如翻译成"契约"或"合同"。 在interface("契约"或"合同")里承诺了将来要实现的功能,interface里的函数声明就是这种…

Samba 简介及安装

还是学的太少啊,头脑里面没有存货啊,今天和同事吃饭的时候,听他们提起这个东西,但是自己之前没听说过,更别提怎么用了,哎。差距啊。于是暗暗记住,下班之后研究研究。 Samba简介 Samba是一套让…

skill: 控制台程序运行后,command窗口自动关闭

如果编译并运行控制台程序,就会显示一个控制台窗口,但该窗口几乎立即就消失了,用户几乎看不到输出的信息。 原因是在创建该项目,Visual Studio .NET记住了用户指定的设置,所以会把它编译并运行为控制台应用程序。然后&…

Exchange Server2010系列之八:利用通讯组方便地进行收件人管理

通讯组由来已久,早在Exchange5.5的时候就出现了邮件列表和组的概念,但二者之间没有关联,从Exchange2000开始,微软就刻意做了改变,邮件列表和组紧密结合。管理员可以给组分配一个邮件地址,那么这个地址就成为…

C#项目中的bin目录和obj目录的区别,以及Debug版本和Release版本的区别

C#项目中的bin目录和obj目录的区别 1.关于bin目录和obj目录 Bin目录用来保存项目生成后程序集,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过&#…

Java多线程三(线程安全的集合及java.util.concurrent包的锁)

为什么80%的码农都做不了架构师&#xff1f;>>> 一、线程安全的集合 JDK1.5之前&#xff0c;可以使用Venctor和Hashtable&#xff0c;也可以由java.util.Collections来创建线程安全的集合&#xff0c;如&#xff1a;Connections.synchronizedSet(Set<T>); C…

了解配置文件

如果你一直在做架构。你设计的框架一定是可配置的&#xff0c;包括那些数据库的配置&#xff0c;当然&#xff0c;还有其它。 一个灵活的程序肯定会有各种各样的配置&#xff0c;具体使用情况也各不相同。本文讲解的是纯java配置文件的加载&#xff0c;没有使用任何ssh之类的东…

shell中单引号、双引号、反引号的区别

shell可以识别4种不同类型的引字符号: 单引号字符 双引号字符" 反斜杠字符\ 反引号字符 1. 单引号 ( ) # grep Susan phonebook Susan Goldberg 403-212-4921 Susan Topple 212-234-2343 如果我们想查找的是Susan Goldberg&#xff0c;不能直接使用grep Susan Goldb…