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等,以下是架構示意圖。
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。最后出來之前,確保關閉數據庫連接,并釋放資源。
總結
以上是生活随笔為你收集整理的ruby mysql dbi_Ruby MySQL DBI实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gifcam使用缩小内存_Fedora
- 下一篇: printf函数的格式修饰符