ODBC和JDBC是做啥的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ODBC和JDBC是做啥的?相关的知识,希望对你有一定的参考价值。

是数据库里的,请简要说明一下,还有他们的区别,谢谢。

ODBC:一般指开放数据库连接(Open Database Connectivity,ODBC)是为解决异构数据库间的数据共享而产生的。

现已成为WOSA(The Windows Open System Architecture ),Windows开放系统体系结构)的主要部分和基于Windows环境的一种数据库访问接口标准ODBC 为异构数据库访问提供统一接口,允许应用程序以SQL 为数据存取标准,存取不同DBMS管理的数据;使应用程序直接操纵DB中的数据,免除随DB的改变而改变。用ODBC 可以访问各类计算机上的DB文件,甚至访问如Excel 表和ASCI I数据文件这类非数据库对象。

JDBC:JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,

扩展资料:

对本地数据库来说,通常要在User DSN(用户DSN)选项卡上创建一个项;对远程数据库,则在System DSN(系统DSN)选项卡上创建。任何情况下,都不能在User DSN(用户DSN)和System DSN(系统DSN)选项卡上创建同名的项。通常会出现的问题是,你试图访问远程数据库,但从Web服务器获得了非常奇怪和矛盾的错误消息。事实上,如果在远程数据库访问期间得到了奇怪的错误消息,那么32位ODBC小程序是首先应该查看的地方之一。

参考资料:ODBC开放数据库互连-百度百科

jdbc-百度百科

参考技术A 什么是JDBC?

JDBC, 全称为Java DataBase Connectivity standard, 它是一个面向对象的应用程序接口(API), 通过它可访问各类关系数据库。JDBC也是java核心类库的一部分。

JDBC的最大特点是它独立于具体的关系数据库。与ODBC (Open Database Connectivity)类似, JDBC API 中定义了一些Java类分别用来表示与数据库的连接(connections), SQL语句(SQL statements), 结果集(result sets)以及其它的数据库对象, 使得Java程序能方便地与数据库交互并处理所得的结果。使用JDBC, 所有Java程序(包括Java applications , applets和servlet)都能通过SQL语句或存储在数据库中的过程(stored procedures)来存取数据库。

要通过JDBC来存取某一特定的数据库,必须有相应的JDBC driver,它往往是由生产数据库的厂家提供,是连接JDBC API与具体数据库之间的桥梁。

通常,Java程序首先使用JDBC API来与JDBC Driver Manager交互,由JDBC Driver Manager载入指定的JDBC drivers, 以后就可以通过JDBC API来存取数据库。

ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。

一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。

一个完整的ODBC由下列几个部件组成:

应用程序(Application)。

ODBC管理器(Administrator)。该程序位于Windows 95控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。

驱动程序管理器(Driver Manager)。驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。

ODBC API。

ODBC 驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。

数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。

各部件之间的关系如图下图所示:

应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。

在ODBC中,ODBC API不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对ODBC API的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。

在访问ODBC数据源时需要ODBC驱动程序的支持。用Visual C++ 5.0安装程序可以安装SQL Server、 Access、 Paradox、 dBase、 FoxPro、 Excel、 Oracle 和Microsoft Text等驱动程序.在缺省情况下,VC5.0只会安装SQL Server、 Access、 FoxPro和dBase的驱动程序.如果用户需要安装别的驱动程序,则需要重新运行VC 5.0的安装程序并选择所需的驱动程序。本回答被提问者采纳
参考技术B ODBC是早期的数据库规范,开放数据库连接
JDBC,Java数据库连接,专门面向Java的数据库连接支持

helper 和 helper_method 是做啥的?

【中文标题】helper 和 helper_method 是做啥的?【英文标题】:What do helper and helper_method do?helper 和 helper_method 是做什么的? 【发布时间】:2011-04-28 21:42:49 【问题描述】:

helper_method 很简单:它使控制器的部分或全部方法对视图可用。

helper 是什么?是不是反过来,即它将辅助方法导入文件或模块? (也许helperhelper_method 的名字是一样的。他们可能宁愿是share_methods_with_viewimport_methods_from_view

reference

【问题讨论】:

【参考方案1】:

helper_method 方法是显式共享控制器中定义的一些方法,使它们可用于视图。这用于您需要从控制器和助手/视图访问的任何方法(标准助手方法在控制器中不可用)。例如常见用例:

#application_controller.rb
def current_user
  @current_user ||= User.find_by_id!(session[:user_id])
end
helper_method :current_user

另一方面,helper 方法用于将整个帮助器导入控制器提供的视图(并且它是继承的控制器)。这意味着什么

# application_controller.rb
helper :all

对于 Rails > 3.1

# application.rb
config.action_controller.include_all_helpers = true
# This is the default anyway, but worth knowing how to turn it off

使所有视图都可以使用所有辅助模块(至少对于从 application_controller 继承的所有控制器。

# home_controller.rb
helper UserHelper

使 UserHelper 方法可用于主控制器操作的视图。这相当于做:

# HomeHelper
include UserHelper

【讨论】:

在 Rails >= 3.1 中,应用程序控制器中的 'helper :all' 被 application.rb 中的 'include_all_helpers' 配置设置替换。见***.com/questions/1179865。 @Jeremy 我知道这篇文章很旧,但说得好。帮助了我! 除了一些简单的语法糖之外,使用“helper”和“include”是有区别的。 “helper”使命名模块可用于视图,并且仅用于视图。 “include”使命名模块可用于视图和控制器。两者都会影响继承的控制器及其视图。 @R_G 你注意到了吗,最后一个 sn-p include UserHelperHomeHelper 模块中,而不是在控制器中? AFAIK,简单地在控制器中包含辅助模块不会与视图共享方法。 @FranklinYu 包括控制器中的辅助模块实际上会与视图共享方法,所以 R_G 是正确的。

以上是关于ODBC和JDBC是做啥的?的主要内容,如果未能解决你的问题,请参考以下文章

addScalar 是做啥的?

LoaderManager 是做啥的?

sizeof 是做啥的?

CSS:这个星号 (*) 是做啥的?

“使用asm”到底是做啥的?

glStencilMask() 到底是做啥的? [复制]