程序员方阵 数据库连接字符串的困惑 数据库连接字符串的组成 驱动程序 ODBC OLE DB JDBC 比较 数据库链接字符串大全 SQL Server 2005 SQL Native Client ODBC Driver SQL Native Client OLE DB Provider SqlConnection NET MySQL MyODBC OLE DB OleDbConnection NET MySqlConnection NET Oracle ODBC OLE DB OleDbConnection NET AS400 iSeries Cach IBM DB2 Firebird Informix Interbase SQLBase SQL Serve 絮叨絮叨
程序员方阵
说起Hello World,不由得想起最近的抗战胜利70周年阅兵;网络中走来的程序员方阵。
现在向我们走来的是程序员方阵!
他们穿着拖鞋,披着毛巾,
左手拿着键盘,右手举着鼠标,
腋下夹着USB转换器。
他们因睡眠不足而显得精神不振,
喊着微弱的口号走过主席台。
主席问候:程序员们辛苦了!
程序员方队异口同声地答道:Hello World!
习大大的讲话很给力:让我们共同铭记历史所启示的伟大真理:正义必胜!和平必胜!人民必胜!
数据库连接字符串的困惑
通常来说,第一个Hello World程序是无压力的,个别开发环境安装、配置起来可能比较吃力,就像前段时间Visual Studio推出Linux版本,我基于CentOS6.5安装,结果需要升级GCC的版本,研究了半天也没搞定!
我最初学习的是VB.NET,学习网页后台开发,照着书中的例子学习的也还算顺利;但到学习数据库的时候就卡住了,当时是连接的ACCESS数据库,具体遇到的错误已经不记得了,只大概的记得这问题搞了一两个月也没搞出来!当时是2003年左右,网络上能找到的东西也非常有限,不像现在一搜一大把的资料源码之类的;当时应该有一些知名的论坛了,不过那时候人比较傻,也不知道去找论坛发帖;当时访问Google还不用翻墙呢,不过英文也不好,也没想到去外面看看!
实在研究不通了,就放下了,先去研究点别的;过了大概一个多月吧,又回过头来研究,结果很快搞通过了,连接数据库成功了,突然觉得豁然开朗!
数据库连接字符串的组成
连接字符串的是一个以分号为界,划分键值参数对的列表。
驱动程序
之所以可以通过一个字符串连接并操作数据库,是因为有驱动程序的支持。
常见的驱动程序如下:
ODBC
ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
OLE DB
OLE DB 是 Microsoft 的一个战略性系统级编程接口,用于管理整个组织内的数据。OLE DB 是建立在 ODBC 功能之上的一个开放规范。ODBC 是为访问关系型数据库而专门开发的,OLE DB 则用于访问关系型和非关系型信息源,例如主机 ISAM/VSAM 和层次数据库,电子邮件和文件系统存储,文本、图形和地理数据以及自定义业务对象。OLE DB 定义了一组 COM 接口,对各种数据库管理系统服务进行封装,并允许创建软件组件,实现这些服务。OLE DB 组件包括数据提供程序(包含和表现数据)、数据使用者(使用数据)和服务组件(处理和传送数据,例如,查询处理器和游标引擎)。OLE DB 接口有助于平滑地集成组件,这样,OLE DB 组件厂商就可以快速地向市场提供高质量 OLE DB 组件。此外,OLE DB 包含了一个连接 ODBC 的“桥梁”,对现用的各种 ODBC 关系型数据库驱动程序提供一贯的支持。
JDBC
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。
比较
目前,Microsoft 的 ODBC API 可能是使用最广的、用于访问关系数据库的编程接口。它能在几乎所有平台上连接几乎所有的数据库。为什么 Java 不使用 ODBC?对这个问题的回答是:Java 可以使用 ODBC,但最好是在 JDBC 的帮助下以JDBC-ODBC桥的形式使用,这一点我们稍后再说。现在的问题已变成:”为什么需要 JDBC”?答案是显然的:ODBC 不适合直接在 Java 中使用,因为它使用 C 语言接口。从Java 调用本地 C代码在安全性、实现、坚固性和程序的自动移植性方面都有许多缺点。从 ODBC C API 到 Java API 的字面翻译是不可取的。例如,Java 没有指针,而 ODBC 却对指针用得很广泛(包括很容易出错的指针”void *”)。您可以将 JDBC 想象成被转换为面向对象接口的 ODBC,而面向对象的接口对 Java程序员来说较易于接受。
ODBC 很难学。它把简单和高级功能混在一起,而且即使对于简单的查询,其选项也极为复杂。相反,JDBC 尽量保证简单功能的简便性,而同时在必要时允许使用高级功能。启用”纯 Java “机制需要象 JDBC 这样的 Java API。如果使用ODBC,就必须手动地将 ODBC 驱动程序管理器和驱动程序安装在每台客户机上。如果完全用 Java 编写 JDBC 驱动程序则 JDBC代码在所有 Java 平台上(从网络计算机到大型机)都可以自 动安装、移植并保证安全性。
总之,JDBC API 对于基本的 SQL 抽象和概念是一种自然的 Java 接口。它建立在 ODBC 上而不是从零开始。因此,熟悉 ODBC 的程序员将发现 JDBC 很容易使用。JDBC 保留了 ODBC 的基本设计特征;事实上,两种接口都基于 X/Open SQL CLI(调用级接口)。它们之间最大的区别在于:JDBC 以 Java 风格与优点为基础并进行优化,因此更加易于使用。
目前,Microsoft 又引进了 ODBC 之外的新 API: RDO、 ADO 和OLE DB。这些设计在许多方面与 JDBC 是相同的,即它们都是面向对象的数据库接口且基于可在 ODBC 上实现的类。但在这些接口中,我们未看见有特别的功能使我们要转而选择它们来替代 ODBC,尤其是在 ODBC 驱动程序已建立起较为完善的市场的情况下。它们最多也就是在 ODBC 上加了一种装饰而已。
数据库链接字符串大全
SQL Server 2005
SQL Native Client ODBC Driver
标准安全连接
Driver={SQL Native Client};Server=myServerAddress; Database=myDataBase;Uid=myUsername;Pwd=myPassword;
受信的连接
Driver={SQL Native Client}; Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;
“Integrated Security=SSPI” 与 “Trusted_Connection=ye