ruby mysql dbi_Ruby MySQL DBI实例

本次章节将介绍如何用Ruby来访问数据库。类似的Perl DBI模块为Ruby脚本的Ruby DBI模块提供了一种数据库(这里用MySQL讲解)独立的接口。

DBI代表数据库无关的接口为RubyDBI提供的Ruby代码和底层数据库之间的抽象层,允许你真的很容易切换数据库实现。它定义了一套方法,变量和约定来提供一致的数据库接口,独立于实际使用的数据库。

DBI可以连接以下:

ADO (ActiveX Data Objects)

DB2

Frontbase

mSQL

MySQL

ODBC

Oracle

OCI8 (Oracle)

PostgreSQL

Proxy/Server

SQLite

SQLRelay

DBI应用程序的体系结构

DBI是独立于现有的任何数据库后端。可以使用DBI操作使用Oracle,MySQL或Informix等,以下是架构示意图。

a54d4b340ab2eee209d040d63691bb93.png

Ruby的DBI一般架构为使用两个层次:

数据库接口(DBI)层。这一层是独立于数据库,并提供了一组共同的访问方法所,使用的相同的方式而不管是什么样的数据库服务器。

(DBD)的数据库驱动程序层。这一层是依赖于数据库,不同的驱动程序提供了访问不同的数据库引擎。驱动程序用于PostgreSQL,MySQL,InterBase 或 Oracle等等。每个驱动程序解释DBI层的请求,并将它们映射到适用于某一特定类型的数据库服务器的请求。

先决条件:

如果想编写Ruby脚本来访问MySQL数据库,那么需要安装Ruby的MySQL模块。

获取并安装Ruby/DBI:

可以下载并安装Ruby DBI模块从以下位置:

在开始安装之前,请确保有root权限。执行以下步骤:

步骤 1

$ tar zxf dbi-0.2.0.tar.gz

步骤 2

在distrubution目录dbi-0.2.0 和配置setup.rb的脚本在该目录中。最常用的配置命令看起来像这样,不带参数的配置参数。此命令配置分配默认情况下,安装所有的驱动程序。

$ ruby setup.rb config

更具体地,提供了 --with 选项列出想使用的特定部位分布。例如,只配置主DBI模块和 MySQL DBD-level 驱动程序器,请发出以下命令:

$ ruby setup.rb config--with=dbi,dbd_mysql

步骤 3

最后一步是构建驱动程序并安装它使用下面的命令。

$ ruby setup.rb setup

$ ruby setup.rb install

数据库连接:

假设我们要使用MySQL数据库。连接到数据库之前,请确保以下:

已经创建了数据库:TESTDB.

已经创建表 EMPLOYEE 在数据库 TESTDB 中.

这张表有以下几个属性 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME.

用户ID "testuser" 和密码 "test123" 已经设置可以访问数据库 TESTDB

Ruby 模块DBI 在机器上正确安装.

已经通过MySQL教程学习,了解MySQL基础知识和操作。

下面的例子连接MySQL数据库“TESTDB”

#!/usr/bin/ruby -wrequire"dbi"begin# connect to the MySQL serverdbh=DBI.connect("DBI:Mysql:TESTDB:localhost","testuser","test123")# get server version string and display itrow=dbh.select_one("SELECT VERSION()")puts"Server version: "+row[0]rescueDBI::DatabaseError=>e

puts"An error occurred"puts"Error code: #{e.err}"puts"Error message: #{e.errstr}"ensure# disconnect from serverdbh.disconnectifdbhend

当运行这个脚本,它在我的Linux机器产生以下结果。

Serverversion:5.0.45

如果建立一个连接的数据源,然后继续使用,否则 dbh设置为NILL值,e.err的和e::errstr返回错误代码和错误字符串返回,并保存到一个数据库句柄 dbh。最后出来之前,确保关闭数据库连接,并释放资源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值