中文字幕人妻中文_99精品欧美一区二区三区综合在线_精品久久久久一区二区_色月丁香_免费福利在线视频_欧美大片免费观看网址_国产伦精品一区二区三区在线播放_污污污污污污www网站免费_久久月本道色综合久久_色69激情爱久久_尹人香蕉久久99天天拍_国产美女www_亚洲国产精品无码7777一线_五月婷婷六月激情_看免费一级片_精品久久久久久成人av_在线色亚洲_女人另类性混交zo_国产精品青青在线观看爽香蕉_人人澡人人添人人爽一区二区

主頁(yè) > 知識(shí)庫(kù) > 在Ruby程序中連接數(shù)據(jù)庫(kù)的詳細(xì)教程

在Ruby程序中連接數(shù)據(jù)庫(kù)的詳細(xì)教程

熱門標(biāo)簽:征服者企業(yè)地圖標(biāo)注 巫師3地圖標(biāo)注魔力之所 柯城手機(jī)地圖如何做地圖標(biāo)注 淮安自動(dòng)外呼系統(tǒng)供應(yīng)商 AI電銷機(jī)器人 線路 外呼線路從哪里出來(lái)的 天津外呼系統(tǒng)怎么收費(fèi) 中牟外呼系統(tǒng)違法嗎 漯河電銷

本章節(jié)將向您講解如何使用 Ruby 訪問(wèn)數(shù)據(jù)庫(kù)。Ruby DBI 模塊為 Ruby 腳本提供了類似于 Perl DBI 模塊的獨(dú)立于數(shù)據(jù)庫(kù)的接口。

DBI 即 Database independent interface,代表了 Ruby 獨(dú)立于數(shù)據(jù)庫(kù)的接口。DBI 在 Ruby 代碼與底層數(shù)據(jù)庫(kù)之間提供了一個(gè)抽象層,允許您簡(jiǎn)單地實(shí)現(xiàn)數(shù)據(jù)庫(kù)切換。它定義了一系列方法、變量和規(guī)范,提供了一個(gè)獨(dú)立于數(shù)據(jù)庫(kù)的一致的數(shù)據(jù)庫(kù)接口。

DBI 可與下列進(jìn)行交互:

  •     ADO (ActiveX Data Objects)
  •     DB2
  •     Frontbase
  •     mSQL
  •     MySQL
  •     ODBC
  •     Oracle
  •     OCI8 (Oracle)
  •     PostgreSQL
  •     Proxy/Server
  •     SQLite
  •     SQLRelay

DBI 應(yīng)用架構(gòu)

DBI 獨(dú)立于任何在后臺(tái)中可用的數(shù)據(jù)庫(kù)。無(wú)論您使用的是 Oracle、MySQL、Informix,您都可以使用 DBI。下面的架構(gòu)圖清晰地說(shuō)明了這點(diǎn)。

Ruby DBI 一般的架構(gòu)使用兩個(gè)層:

  •     數(shù)據(jù)庫(kù)接口(DBI)層。該層是獨(dú)立于數(shù)據(jù)庫(kù),并提供了一系列公共訪問(wèn)方法,方法的使用不分?jǐn)?shù)據(jù)庫(kù)服務(wù)器類型。
  •     數(shù)據(jù)庫(kù)驅(qū)動(dòng)(DBD)層。該層是依賴于數(shù)據(jù)庫(kù),不同的驅(qū)動(dòng)提供了對(duì)不同的數(shù)據(jù)庫(kù)引擎的訪問(wèn)。MySQL、PostgreSQL、InterBase、Oracle 等分別使用不同的驅(qū)動(dòng)。每個(gè)驅(qū)動(dòng)都負(fù)責(zé)解釋來(lái)自 DBI 層的請(qǐng)求,并把這些請(qǐng)求映射為適用于給定類型的數(shù)據(jù)庫(kù)服務(wù)器的請(qǐng)求。

先決條件

如果您想要編寫 Ruby 腳本來(lái)訪問(wèn) MySQL 數(shù)據(jù)庫(kù),您需要先安裝 Ruby MySQL 模塊。

該模塊是一個(gè) DBD,可從 http://www.tmtm.org/en/mysql/ruby/ 上下載。
獲取并安裝 Ruby/DBI

您可以從下面的鏈接下載并安裝 Ruby DBI 模塊:

http://rubyforge.org/projects/ruby-dbi/

在開(kāi)始安裝之前,請(qǐng)確保您擁有 root 權(quán)限。現(xiàn)在,請(qǐng)安裝下面的步驟進(jìn)行安裝:
步驟 1

$ tar zxf dbi-0.2.0.tar.gz

步驟 2

進(jìn)入目錄 dbi-0.2.0,在目錄中使用 setup.rb 腳本進(jìn)行配置。最常用的配置命令是 config 參數(shù)后不跟任何參數(shù)。該命令默認(rèn)配置為安裝所有的驅(qū)動(dòng)。

$ ruby setup.rb config

更具體地,您可以使用 --with 選項(xiàng)來(lái)列出了您要使用的特定部分。例如,如果只想配置主要的 DBI 模塊和 MySQL DBD 層驅(qū)動(dòng),請(qǐng)輸入下面的命令:

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

步驟 3

最后一步是建立驅(qū)動(dòng)器,使用下面命令進(jìn)行安裝:

$ ruby setup.rb setup
$ ruby setup.rb install

數(shù)據(jù)庫(kù)連接

假設(shè)我們使用的是 MySQL 數(shù)據(jù)庫(kù),在連接數(shù)據(jù)庫(kù)之前,請(qǐng)確保:

  •     您已經(jīng)創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù) TESTDB。
  •     您已經(jīng)在 TESTDB 中創(chuàng)建了表 EMPLOYEE。
  •     該表帶有字段 FIRST_NAME、LAST_NAME、AGE、SEX 和 INCOME。
  •     設(shè)置用戶 ID "testuser" 和密碼 "test123" 來(lái)訪問(wèn) TESTDB
  •     已經(jīng)在您的機(jī)器上正確地安裝了 Ruby 模塊 DBI。
  •     您已經(jīng)看過(guò) MySQL 教程,理解了 MySQL 基礎(chǔ)操作。

下面是連接 MySQL 數(shù)據(jù)庫(kù) "TESTDB" 的實(shí)例:

#!/usr/bin/ruby -w
 
require "dbi"
 
begin
   # 連接到 MySQL 服務(wù)器
   dbh = DBI.connect("DBI:Mysql:TESTDB:localhost",
            "testuser", "test123")
   # 獲取服務(wù)器版本字符串,并顯示
   row = dbh.select_one("SELECT VERSION()")
   puts "Server version: " + row[0]
rescue DBI::DatabaseError => e
   puts "An error occurred"
   puts "Error code:  #{e.err}"
   puts "Error message: #{e.errstr}"
ensure
   # 斷開(kāi)與服務(wù)器的連接
   dbh.disconnect if dbh
end

當(dāng)運(yùn)行這段腳本時(shí),將會(huì)在 Linux 機(jī)器上產(chǎn)生以下結(jié)果。
Server version: 5.0.45

如果建立連接時(shí)帶有數(shù)據(jù)源,則返回?cái)?shù)據(jù)庫(kù)句柄(Database Handle),并保存到 dbh 中以便后續(xù)使用,否則 dbh 將被設(shè)置為 nil 值,e.err 和 e::errstr 分別返回錯(cuò)誤代碼和錯(cuò)誤字符串。

最后,在退出這段程序之前,請(qǐng)確保關(guān)閉數(shù)據(jù)庫(kù)連接,釋放資源。
INSERT 操作

當(dāng)您想要在數(shù)據(jù)庫(kù)表中創(chuàng)建記錄時(shí),需要用到 INSERT 操作。

一旦建立了數(shù)據(jù)庫(kù)連接,我們就可以準(zhǔn)備使用 do 方法或 prepare 和 execute 方法創(chuàng)建表或創(chuàng)建插入數(shù)據(jù)表中的記錄。
使用 do 語(yǔ)句

不返回行的語(yǔ)句可通過(guò)調(diào)用 do 數(shù)據(jù)庫(kù)處理方法。該方法帶有一個(gè)語(yǔ)句字符串參數(shù),并返回該語(yǔ)句所影響的行數(shù)。

dbh.do("DROP TABLE IF EXISTS EMPLOYEE")
dbh.do("CREATE TABLE EMPLOYEE (
   FIRST_NAME CHAR(20) NOT NULL,
   LAST_NAME CHAR(20),
   AGE INT, 
   SEX CHAR(1),
   INCOME FLOAT )" );

同樣地,您可以執(zhí)行 SQL INSERT 語(yǔ)句來(lái)創(chuàng)建記錄插入 EMPLOYEE 表中。

#!/usr/bin/ruby -w
 
require "dbi"
 
begin
   # 連接到 MySQL 服務(wù)器
   dbh = DBI.connect("DBI:Mysql:TESTDB:localhost",
            "testuser", "test123")
   dbh.do( "INSERT INTO EMPLOYEE(FIRST_NAME,
          LAST_NAME,
          AGE,
      SEX,
      INCOME)
     VALUES ('Mac', 'Mohan', 20, 'M', 2000)" )
   puts "Record has been created"
   dbh.commit
rescue DBI::DatabaseError => e
   puts "An error occurred"
   puts "Error code:  #{e.err}"
   puts "Error message: #{e.errstr}"
   dbh.rollback
ensure
   # 斷開(kāi)與服務(wù)器的連接
   dbh.disconnect if dbh
end
使用 prepare 和 execute

您可以使用 DBI 的 prepare 和 execute 方法來(lái)執(zhí)行 Ruby 代碼中的 SQL 語(yǔ)句。

創(chuàng)建記錄的步驟如下:

    準(zhǔn)備帶有 INSERT 語(yǔ)句的 SQL 語(yǔ)句。這將通過(guò)使用 prepare 方法來(lái)完成。
    執(zhí)行 SQL 查詢,從數(shù)據(jù)庫(kù)中選擇所有的結(jié)果。這將通過(guò)使用 execute 方法來(lái)完成。
    釋放語(yǔ)句句柄。這將通過(guò)使用 finish API 來(lái)完成。
    如果一切進(jìn)展順利,則 commit 該操作,否則您可以 rollback 完成交易。

下面是使用這兩種方法的語(yǔ)法:

sth = dbh.prepare(statement)
sth.execute
  ... zero or more SQL operations ...
sth.finish

這兩種方法可用于傳 bind 值給 SQL 語(yǔ)句。有時(shí)候被輸入的值可能未事先給出,在這種情況下,則會(huì)用到綁定值。使用問(wèn)號(hào)(?)替代實(shí)際值,實(shí)際值通過(guò) execute() API 來(lái)傳遞。

下面的實(shí)例在 EMPLOYEE 表中創(chuàng)建了兩個(gè)記錄:

#!/usr/bin/ruby -w
 
require "dbi"
 
begin
   # 連接到 MySQL 服務(wù)器
   dbh = DBI.connect("DBI:Mysql:TESTDB:localhost",
            "testuser", "test123")
   sth = dbh.prepare( "INSERT INTO EMPLOYEE(FIRST_NAME,
          LAST_NAME,
          AGE,
      SEX,
      INCOME)
          VALUES (?, ?, ?, ?, ?)" )
   sth.execute('John', 'Poul', 25, 'M', 2300)
   sth.execute('Zara', 'Ali', 17, 'F', 1000)
   sth.finish
   dbh.commit
   puts "Record has been created"
rescue DBI::DatabaseError => e
   puts "An error occurred"
   puts "Error code:  #{e.err}"
   puts "Error message: #{e.errstr}"
   dbh.rollback
ensure
   # 斷開(kāi)與服務(wù)器的連接
   dbh.disconnect if dbh
end

如果同時(shí)使用多個(gè) INSERT,那么先準(zhǔn)備一個(gè)語(yǔ)句,然后在一個(gè)循環(huán)中多次執(zhí)行它要比通過(guò)循環(huán)每次調(diào)用 do 有效率得多。
READ 操作

對(duì)任何數(shù)據(jù)庫(kù)的 READ 操作是指從數(shù)據(jù)庫(kù)中獲取有用的信息。

一旦建立了數(shù)據(jù)庫(kù)連接,我們就可以準(zhǔn)備查詢數(shù)據(jù)庫(kù)。我們可以使用 do 方法或 prepare 和 execute 方法從數(shù)據(jù)庫(kù)表中獲取值。

獲取記錄的步驟如下:

  •     基于所需的條件準(zhǔn)備 SQL 查詢。這將通過(guò)使用 prepare 方法來(lái)完成。
  •     執(zhí)行 SQL 查詢,從數(shù)據(jù)庫(kù)中選擇所有的結(jié)果。這將通過(guò)使用 execute 方法來(lái)完成。
  •     逐一獲取結(jié)果,并輸出這些結(jié)果。這將通過(guò)使用 fetch 方法來(lái)完成。
  •     釋放語(yǔ)句句柄。這將通過(guò)使用 finish 方法來(lái)完成。

下面的實(shí)例從 EMPLOYEE 表中查詢所有工資(salary)超過(guò) 1000 的記錄。

#!/usr/bin/ruby -w
 
require "dbi"
 
begin
   # 連接到 MySQL 服務(wù)器
   dbh = DBI.connect("DBI:Mysql:TESTDB:localhost",
            "testuser", "test123")
   sth = dbh.prepare("SELECT * FROM EMPLOYEE
            WHERE INCOME > ?")
   sth.execute(1000)
 
   sth.fetch do |row|
    printf "First Name: %s, Last Name : %s\n", row[0], row[1]
    printf "Age: %d, Sex : %s\n", row[2], row[3]
    printf "Salary :%d \n\n", row[4]
   end
   sth.finish
rescue DBI::DatabaseError => e
   puts "An error occurred"
   puts "Error code:  #{e.err}"
   puts "Error message: #{e.errstr}"
ensure
   # 斷開(kāi)與服務(wù)器的連接
   dbh.disconnect if dbh
end

這將產(chǎn)生以下結(jié)果:

First Name: Mac, Last Name : Mohan
Age: 20, Sex : M
Salary :2000
 
First Name: John, Last Name : Poul
Age: 25, Sex : M
Salary :2300

還有很多從數(shù)據(jù)庫(kù)獲取記錄的方法,如果您感興趣,可以查看 Ruby DBI Read 操作。
Update 操作

對(duì)任何數(shù)據(jù)庫(kù)的 UPDATE 操作是指更新數(shù)據(jù)庫(kù)中一個(gè)或多個(gè)已有的記錄。下面的實(shí)例更新 SEX 為 'M' 的所有記錄。在這里,我們將把所有男性的 AGE 增加一歲。這將分為三步:

  •     基于所需的條件準(zhǔn)備 SQL 查詢。這將通過(guò)使用 prepare 方法來(lái)完成。
  •     執(zhí)行 SQL 查詢,從數(shù)據(jù)庫(kù)中選擇所有的結(jié)果。這將通過(guò)使用 execute 方法來(lái)完成。
  •     釋放語(yǔ)句句柄。這將通過(guò)使用 finish 方法來(lái)完成。

如果一切進(jìn)展順利,則 commit 該操作,否則您可以 rollback 完成交易。

#!/usr/bin/ruby -w
 
require "dbi"
 
begin
   # 連接到 MySQL 服務(wù)器
   dbh = DBI.connect("DBI:Mysql:TESTDB:localhost",
            "testuser", "test123")
   sth = dbh.prepare("UPDATE EMPLOYEE SET AGE = AGE + 1
            WHERE SEX = ?")
   sth.execute('M')
   sth.finish
   dbh.commit
rescue DBI::DatabaseError => e
   puts "An error occurred"
   puts "Error code:  #{e.err}"
   puts "Error message: #{e.errstr}"
   dbh.rollback
ensure
   # 斷開(kāi)與服務(wù)器的連接
   dbh.disconnect if dbh
end

DELETE 操作

當(dāng)您想要從數(shù)據(jù)庫(kù)中刪除記錄時(shí),需要用到 DELETE 操作。下面的實(shí)例從 EMPLOYEE 中刪除 AGE 超過(guò) 20 的所有記錄。該操作的步驟如下:

  •     基于所需的條件準(zhǔn)備 SQL 查詢。這將通過(guò)使用 prepare 方法來(lái)完成。
  •     執(zhí)行 SQL 查詢,從數(shù)據(jù)庫(kù)中刪除所需的記錄。這將通過(guò)使用 execute 方法來(lái)完成。
  •     釋放語(yǔ)句句柄。這將通過(guò)使用 finish 方法來(lái)完成。
  •     如果一切進(jìn)展順利,則 commit 該操作,否則您可以 rollback 完成交易。
#!/usr/bin/ruby -w
 
require "dbi"
 
begin
   # 連接到 MySQL 服務(wù)器
   dbh = DBI.connect("DBI:Mysql:TESTDB:localhost",
            "testuser", "test123")
   sth = dbh.prepare("DELETE FROM EMPLOYEE
            WHERE AGE > ?")
   sth.execute(20)
   sth.finish
   dbh.commit
rescue DBI::DatabaseError => e
   puts "An error occurred"
   puts "Error code:  #{e.err}"
   puts "Error message: #{e.errstr}"
   dbh.rollback
ensure
   # 斷開(kāi)與服務(wù)器的連接
   dbh.disconnect if dbh
end

執(zhí)行事務(wù)

事務(wù)是一種確保交易一致性的機(jī)制。事務(wù)應(yīng)具有下列四種屬性:

  •     原子性(Atomicity):事務(wù)的原子性指的是,事務(wù)中包含的程序作為數(shù)據(jù)庫(kù)的邏輯工作單位,它所做的對(duì)數(shù)據(jù)修改操作要么全部執(zhí)行,要么完全不執(zhí)行。
  •     一致性(Consistency):事務(wù)的一致性指的是在一個(gè)事務(wù)執(zhí)行之前和執(zhí)行之后數(shù)據(jù)庫(kù)都必須處于一致性狀態(tài)。假如數(shù)據(jù)庫(kù)的狀態(tài)滿足所有的完整性約束,就說(shuō)該數(shù)據(jù)庫(kù)是一致的。
  •     隔離性(Isolation):事務(wù)的隔離性指并發(fā)的事務(wù)是相互隔離的,即一個(gè)事務(wù)內(nèi)部的操作及正在操作的數(shù)據(jù)必須封鎖起來(lái),不被其它企圖進(jìn)行修改的事務(wù)看到。
  •     持久性(Durability):事務(wù)的持久性意味著當(dāng)系統(tǒng)或介質(zhì)發(fā)生故障時(shí),確保已提交事務(wù)的更新不能丟失。即一旦一個(gè)事務(wù)提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變應(yīng)該是永久性的,耐得住任何數(shù)據(jù)庫(kù)系統(tǒng)故障。持久性通過(guò)數(shù)據(jù)庫(kù)備份和恢復(fù)來(lái)保證。

DBI 提供了兩種執(zhí)行事務(wù)的方法。一種是 commit 或 rollback 方法,用于提交或回滾事務(wù)。還有一種是 transaction 方法,可用于實(shí)現(xiàn)事務(wù)。接下來(lái)我們來(lái)介紹這兩種簡(jiǎn)單的實(shí)現(xiàn)事務(wù)的方法:
方法 I

第一種方法使用 DBI 的 commit 和 rollback 方法來(lái)顯式地提交或取消事務(wù):

dbh['AutoCommit'] = false # 設(shè)置自動(dòng)提交為 false.
begin
 dbh.do("UPDATE EMPLOYEE SET AGE = AGE+1
     WHERE FIRST_NAME = 'John'")
 dbh.do("UPDATE EMPLOYEE SET AGE = AGE+1
     WHERE FIRST_NAME = 'Zara'")
 dbh.commit
rescue
 puts "transaction failed"
 dbh.rollback
end
dbh['AutoCommit'] = true

方法 II

第二種方法使用 transaction 方法。這個(gè)方法相對(duì)簡(jiǎn)單些,因?yàn)樗枰粋€(gè)包含構(gòu)成事務(wù)語(yǔ)句的代碼塊。transaction 方法執(zhí)行塊,然后根據(jù)塊是否執(zhí)行成功,自動(dòng)調(diào)用 commit 或 rollback:

dbh['AutoCommit'] = false # 設(shè)置自動(dòng)提交為 false
dbh.transaction do |dbh|
 dbh.do("UPDATE EMPLOYEE SET AGE = AGE+1
     WHERE FIRST_NAME = 'John'")
 dbh.do("UPDATE EMPLOYEE SET AGE = AGE+1
     WHERE FIRST_NAME = 'Zara'")
end
dbh['AutoCommit'] = true

COMMIT 操作

Commit 是一種標(biāo)識(shí)數(shù)據(jù)庫(kù)已完成更改的操作,在這個(gè)操作后,所有的更改都不可恢復(fù)。

下面是一個(gè)調(diào)用 commit 方法的簡(jiǎn)單實(shí)例。

dbh.commit

ROLLBACK 操作

如果您不滿意某個(gè)或某幾個(gè)更改,您想要完全恢復(fù)這些更改,則使用 rollback 方法。

下面是一個(gè)調(diào)用 rollback 方法的簡(jiǎn)單實(shí)例。

dbh.rollback

斷開(kāi)數(shù)據(jù)庫(kù)

如需斷開(kāi)數(shù)據(jù)庫(kù)連接,請(qǐng)使用 disconnect API。

dbh.disconnect

如果用戶通過(guò) disconnect 方法關(guān)閉了數(shù)據(jù)庫(kù)連接,DBI 會(huì)回滾所有未完成的事務(wù)。但是,不需要依賴于任何 DBI 的實(shí)現(xiàn)細(xì)節(jié),您的應(yīng)用程序就能很好地顯式調(diào)用 commit 或 rollback。
處理錯(cuò)誤

有許多不同的錯(cuò)誤來(lái)源。比如在執(zhí)行 SQL 語(yǔ)句時(shí)的語(yǔ)法錯(cuò)誤,或者是連接失敗,又或者是對(duì)一個(gè)已經(jīng)取消的或完成的語(yǔ)句句柄調(diào)用 fetch 方法。

如果某個(gè) DBI 方法失敗,DBI 會(huì)拋出異常。DBI 方法會(huì)拋出任何類型的異常,但是最重要的兩種異常類是 DBI::InterfaceError 和 DBI::DatabaseError。

這些類的 Exception 對(duì)象有 err、errstr 和 state 三種屬性,分表代表了錯(cuò)誤號(hào)、一個(gè)描述性的錯(cuò)誤字符串和一個(gè)標(biāo)準(zhǔn)的錯(cuò)誤代碼。屬性具體說(shuō)明如下:

  •     err:返回所發(fā)生的錯(cuò)誤的整數(shù)表示法,如果 DBD 不支持則返回 nil。例如,Oracle DBD 返回 ORA-XXXX 錯(cuò)誤消息的數(shù)字部分。
  •     errstr:返回所發(fā)生的錯(cuò)誤的字符串表示法。
  •     state:返回所發(fā)生的錯(cuò)誤的 SQLSTATE 代碼。SQLSTATE 是五字符長(zhǎng)度的字符串。大多數(shù)的 DBD 并不支持它,所以會(huì)返回 nil。

在上面的實(shí)例中您已經(jīng)看過(guò)下面的代碼:

rescue DBI::DatabaseError => e
   puts "An error occurred"
   puts "Error code:  #{e.err}"
   puts "Error message: #{e.errstr}"
   dbh.rollback
ensure
   # 斷開(kāi)與服務(wù)器的連接
   dbh.disconnect if dbh
end

為了獲取腳本執(zhí)行時(shí)有關(guān)腳本執(zhí)行內(nèi)容的調(diào)試信息,您可以啟用跟蹤。為此,您必須首先下載 dbi/trace 模塊,然后調(diào)用控制跟蹤模式和輸出目的地的 trace 方法:

復(fù)制代碼 代碼如下:

require "dbi/trace"
..............
 
trace(mode, destination)

mode 的值可以是 0(off)、1、2 或 3,destination 的值應(yīng)該是一個(gè) IO 對(duì)象。默認(rèn)值分別是 2 和 STDERR。
方法的代碼塊

有一些創(chuàng)建句柄的方法。這些方法通過(guò)代碼塊調(diào)用。使用帶有方法的代碼塊的優(yōu)點(diǎn)是,它們?yōu)榇a塊提供了句柄作為參數(shù),當(dāng)塊終止時(shí)會(huì)自動(dòng)清除句柄。下面是一些實(shí)例,有助于理解這個(gè)概念。

  •     DBI.connect :該方法生成一個(gè)數(shù)據(jù)庫(kù)句柄,建議在塊的末尾調(diào)用 disconnect 來(lái)斷開(kāi)數(shù)據(jù)庫(kù)。
  •     dbh.prepare :該方法生成一個(gè)語(yǔ)句句柄,建議在塊的末尾調(diào)用 finish。在塊內(nèi),您必須調(diào)用 execute 方法來(lái)執(zhí)行語(yǔ)句。
  •     dbh.execute :該方法與 dbh.prepare 類似,但是 dbh.execute 不需要在塊內(nèi)調(diào)用 execute 方法。語(yǔ)句句柄會(huì)自動(dòng)執(zhí)行。

實(shí)例 1

DBI.connect 可帶有一個(gè)代碼塊,向它傳遞數(shù)據(jù)庫(kù)句柄,且會(huì)在塊的末尾自動(dòng)斷開(kāi)句柄。
dbh = DBI.connect("DBI:Mysql:TESTDB:localhost",
                   "testuser", "test123") do |dbh|
實(shí)例 2

dbh.prepare 可帶有一個(gè)代碼塊,向它傳遞語(yǔ)句句柄,且會(huì)在塊的末尾自動(dòng)調(diào)用 finish。

dbh.prepare("SHOW DATABASES") do |sth|
    sth.execute
    puts "Databases: " + sth.fetch_all.join(", ")
end

實(shí)例 3

dbh.execute 可帶有一個(gè)代碼塊,向它傳遞語(yǔ)句句柄,且會(huì)在塊的末尾自動(dòng)調(diào)用 finish。

dbh.execute("SHOW DATABASES") do |sth|
  puts "Databases: " + sth.fetch_all.join(", ")
end

DBI transaction 方法也可帶有一個(gè)代碼塊,這在上面的章節(jié)中已經(jīng)講解過(guò)了。
特定驅(qū)動(dòng)程序的函數(shù)和屬性

DBI 讓數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序提供了額外的特定數(shù)據(jù)庫(kù)的函數(shù),這些函數(shù)可被用戶通過(guò)任何 Handle 對(duì)象的 func 方法進(jìn)行調(diào)用。

使用 []= or [] 方法可以設(shè)置或獲取特定驅(qū)動(dòng)程序的屬性。

DBD::Mysql 實(shí)現(xiàn)了下列特定驅(qū)動(dòng)程序的函數(shù):

實(shí)例

#!/usr/bin/ruby
 
require "dbi"
begin
  # 連接到 MySQL 服務(wù)器
  dbh = DBI.connect("DBI:Mysql:TESTDB:localhost",
            "testuser", "test123")
  puts dbh.func(:client_info)
  puts dbh.func(:client_version)
  puts dbh.func(:host_info)
  puts dbh.func(:proto_info)
  puts dbh.func(:server_info)
  puts dbh.func(:thread_id)
  puts dbh.func(:stat)
rescue DBI::DatabaseError => e
  puts "An error occurred"
  puts "Error code:  #{e.err}"
  puts "Error message: #{e.errstr}"
ensure
  dbh.disconnect if dbh
end

這將產(chǎn)生以下結(jié)果:

5.0.45
50045
Localhost via UNIX socket
10
5.0.45
150621
Uptime: 384981 Threads: 1 Questions: 1101078 Slow queries: 4 \

Opens: 324 Flush tables: 1 Open tables: 64 \

Queries per second avg: 2.860

您可能感興趣的文章:
  • 淺談Ruby on Rails下的rake與數(shù)據(jù)庫(kù)數(shù)據(jù)遷移操作
  • Ruby連接使用windows下sql server數(shù)據(jù)庫(kù)代碼實(shí)例
  • Ruby中訪問(wèn)SQL Server數(shù)據(jù)庫(kù)的配置實(shí)例
  • ruby+nokogori抓取糗事百科前10頁(yè)并存儲(chǔ)進(jìn)數(shù)據(jù)庫(kù)示例
  • Ruby on Rails框架程序連接MongoDB的教程

標(biāo)簽:南昌 克拉瑪依 河池 內(nèi)江 棗莊 大慶 西雙版納 甘孜

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在Ruby程序中連接數(shù)據(jù)庫(kù)的詳細(xì)教程》,本文關(guān)鍵詞  在,Ruby,程序,中,連接,數(shù)據(jù)庫(kù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在Ruby程序中連接數(shù)據(jù)庫(kù)的詳細(xì)教程》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于在Ruby程序中連接數(shù)據(jù)庫(kù)的詳細(xì)教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 大方起重机械有限公司| 东莞三机械有限公司| 武汉鑫巨力精密机械制造有限公司| 吴江迈锐机械有限公司怎么样| 郑州永联机械有限公司| 浙江耐士伦机械有限公司| 食品有限公司起名大全| 东莞市金坤机械设备有限公司| 上海陆达包装机械制造有限公司 | 宁波星源机械有限公司| 机械设计 有限公司| 宁波正凯机械有限公司| 江阴市勤业化工机械有限公司| 上海振华重工有限公司| 机械化工程有限公司| 天津重型机械有限公司| 上海敏杰机械有限公司| 广东机械设备有限公司| 广东新船重工有限公司| 济宁矿山机械有限公司| 烟台精越达机械设备有限公司| 张家港 机械有限公司| 江阴市西城钢铁有限公司| 首唐宝生钢铁有限公司| 泰安市民乐机械制造有限公司| 黎城太行钢铁有限公司| 青州康达机械有限公司| 大连连美机械有限公司| 中天印刷机械有限公司| 杭州海陆重工有限公司| 杭州通产机械有限公司| 广东重工监理有限公司| 南海区机械设备有限公司| 上海德机械设备有限公司| 重的机械有限公司招聘| 萍乡萍钢安源钢铁有限公司| 河北冠能石油机械制造有限公司| 深圳市塑胶机械有限公司| 中兴机械制造有限公司| 上海腾迈机械有限公司| 精雕精密机械有限公司| 北京印刷机械有限公司| 河南省矿山起重有限公司| 常州杰和机械有限公司| 佛山市海裕机械有限公司| 济南精美机械设备有限公司| 青岛液压机械有限公司 | 昆山优能机械有限公司| 广州惠辉机械设备有限公司| 湖南天雁机械责任有限公司| 山东凯达起重机械有限公司| 美心翼申机械有限公司| 烟台 机械有限公司| 三星重工业宁波有限公司| 上海大松机械有限公司| 成机械设备有限公司| 青岛新大成塑料机械有限公司| 青岛唐宇机械制造有限公司 | 温州铸鼎机械有限公司| 三益精密机械有限公司| 阜新恒泰机械有限公司| 南通盛仕达精密机械有限公司| 上海丰泽机械有限公司| 上海 食品机械有限公司| 安阳市机械有限公司| 天津天重江天重工有限公司| 上海捷舟工程机械有限公司| 临沂美联重工有限公司| 河南省中原起重机械有限公司| 上海皆力机械设备有限公司| 山东永峰钢铁有限公司| 湖南 机械有限公司| 安徽省机械有限公司| 江阴市豪亚机械制造有限公司| 河南矿山起重机有限公司地址| 上海集嘉机械有限公司| 山西中宇钢铁有限公司| 上海香宝机械设备有限公司| 新疆机械设备有限公司| 东莞鸿昌机械有限公司| 烟台宏兴机械有限公司| 陕西鑫辉钢铁有限公司| 矿山起重机有限公司| 陕西锦泰机械有限公司| 上海凌鹰机械有限公司| 湖北天和机械有限公司| 衢州 机械有限公司| 济宁鑫聚机械有限公司| 上海小虎机械有限公司| 徐州圣邦机械有限公司| 鑫鑫建筑机械有限公司| 滦南华瑞钢铁有限公司| 俊杰机械深圳有限公司| 上海机械装备有限公司| 邢台市振成机械有限公司| 诸城市华钢机械有限公司| 苏州开隆机械有限公司| 上海七洋液压机械有限公司| 武汉钢铁有限公司官网| 诸城市美川机械有限公司| 泰安东岳重工有限公司| 工程机械销售有限公司| 上海沛愉机械制造有限公司| 湖南机械制造有限公司| 上海 印刷机械有限公司| 诸城市富瑞德机械有限公司 | 唐山宝泰钢铁有限公司| 金华市 机械制造有限公司| 浙江安奇迪动力机械有限公司| 深圳新劲力机械有限公司| 南阳东佳机械有限公司| 广东 机械设备有限公司| 台州嘉瑞机械有限公司| 大连卓远重工有限公司| 工程机械设备有限公司| 湖南民和重工机械有限公司| 广州恒星冷冻机械制造有限公司| 南京利晨机械有限公司| 长城机械制造有限公司| 上海启秀机械设备有限公司| 嘉兴市宏丰机械有限公司| 豫工机械设备有限公司| 深圳步先包装机械有限公司| 深圳市丹耐斯机械有限公司 | 三一汽车起重机械有限公司 | 江苏华雕机械有限公司| 中核机械工程有限公司| 杭州海特机械有限公司| 淮安机械制造有限公司| 常林道依茨法尔机械有限公司| 液压机械制造有限公司| 山东兴华机械有限公司| 大连科信机械有限公司| 宁波利豪机械有限公司| 河南森源重工有限公司| 广东南桂起重机械有限公司| 成都海科机械设备制造有限公司| 烟台海州机械有限公司| 南阳 机械制造有限公司| 汇大机械制造有限公司| 机械有限公司 机械手| 上海展焱包装机械有限公司| 盐城市联鑫钢铁有限公司| 新乡市法斯特机械有限公司| 荆州石油机械有限公司| 上海川口机械有限公司| 新乡市新久振动机械有限公司 | 佛山市宝捷精密机械有限公司| 东莞安默琳机械制造技术有限公司 | 大理大钢钢铁有限公司| 郑州中嘉重工有限公司| 宁波翠科机械有限公司| 鼎泰盛机械有限公司| 湖北银轮机械有限公司| 广东万联包装机械有限公司| 珠海精密机械有限公司| 宝德机械国际有限公司| 海顺机械台州有限公司| 青岛迪凯机械设备有限公司| 杭州富朗机械有限公司| 中核机械工程有限公司| 上海连富机械有限公司| 无锡澳美机械有限公司| 台州机械制造有限公司| 南通赛孚机械设备有限公司| 上海中吉机械制造有限公司| 芜湖 机械制造有限公司| 浙江新飞机械有限公司| 安徽金庆龙机械制造有限公司| 上海清河机械有限公司| 浙江常至机械有限公司| 浙江安奇迪动力机械有限公司| 南京聚力化工机械有限公司| 东莞宏彰机械有限公司| 山东愚公工程机械有限公司| 北京大铭世进机械设备有限公司| 洛阳中收机械装备有限公司| 临海市机械有限公司| 瑞安瑞泰机械有限公司| 汉智数控机械有限公司| 河北奥宇钢铁有限公司| 广州市通风机械设备有限公司 | 徐州起重机械有限公司| 武汉千里马工程机械有限公司| 潍坊铭金机械有限公司| 淮安机械制造有限公司| 江苏民生重工有限公司| 福建敏捷机械有限公司| 上海展焱包装机械有限公司| 徐州天地重型机械制造有限公司| 桐乡 机械有限公司| 广东明华机械有限公司| 临海正大机械有限公司| 苏州泰福特机械有限公司| 哈克农业机械装备制造有限公司 | 上海中吉机械有限公司| 上海紫明印刷机械有限公司| 湖南德邦重工机械有限公司| 蔚蓝机械设备有限公司| 宁波江北机械有限公司| 山西美锦钢铁有限公司| 杭州金竺机械有限公司| 国发重工机械有限公司| 昆山贝奇精密机械有限公司| 肥城云宇机械有限公司| 河南泰兴粮油机械设备有限公司 | 广州日富机械有限公司| 无锡万华机械有限公司| 大连 机械制造有限公司| 粮油机械设备有限公司| 东莞钰腾机械有限公司| 鹤壁市双信矿山机械有限公司 | 保东农业机械有限公司| 重庆卡滨通用机械有限公司 | 嘉兴格鲁博机械有限公司| 桐乡 机械有限公司| 河南三星机械有限公司| 德州 机械有限公司| 丹阳荣嘉精密机械有限公司 | 五谷酿机械有限公司| 佛山市钢铁有限公司| 哈尔滨纳诺机械设备有限公司| 南通密炼捏合机械有限公司| 河北德龙钢铁有限公司| 豪利机械苏州有限公司| 济南科华机械有限公司| 上海百勤机械有限公司| 上海舒平精工机械有限公司| 佛山市康思达液压机械有限公司 | 山东莱芜煤矿机械有限公司| 洛阳古城机械有限公司| 营口京华钢铁有限公司| 华盛机械制造有限公司| 温州华珍机械有限公司| 郑州钰隆机械有限公司| 苏州圣亚精密机械有限公司| 浙江瑞德森机械有限公司| 浙江康明斯机械有限公司| 三马起重机有限公司| 卓轮天津机械有限公司| 深圳市高郭氏精密机械有限公司 | 天津国际机械有限公司| 广东力源液压机械有限公司| 徐州徐工施维英机械有限公司| 安徽普源分离机械制造有限公司| 南京高立工程机械有限公司| 腾达机械设备有限公司| 无锡市机械有限公司| 柳州恒瑞机械有限公司| 烟台瑞进精密机械有限公司| 常州斯太尔动力机械有限公司| 成都固特机械有限公司| 江阴博丰钢铁有限公司| 昆山东新力特精密机械有限公司 | 上海瑞阳机械有限公司| 宇进注塑机械有限公司| 玉环博机械有限公司| 上海远跃制药机械有限公司| 大连 橡塑机械有限公司| 潍坊大众机械有限公司| 安阳亚新钢铁有限公司| 郑州市同鼎机械设备有限公司| 三一众力机械有限公司| 兰州兰石重工有限公司| 华菱涟源钢铁有限公司| 烟台市利达木工机械有限公司 | 临沂工程机械有限公司| 河南机械设备制造有限公司| 上海 食品机械有限公司| 昌信机械制造有限公司| 成都松茂工程机械有限公司| 合肥春华起重机械有限公司| 扬州意得机械有限公司| 浙江美格机械有限公司| 卓郎新疆智能机械有限公司| 机械化施工有限公司| 广州汇亿机械有限公司| 武汉日晗精密机械有限公司| 上海新沪机械有限公司| 山东宇冠机械有限公司| 精密机械配件有限公司| 江阴伟江机械有限公司| 山西贝斯特机械制造有限公司| 苏州启点机械有限公司| 中阳钢铁有限公司招聘| 日照山东钢铁有限公司| 大京机械山东有限公司| 兖州大华机械有限公司| 河北龙汐机械制造有限公司| 上海金恒机械制造有限公司| 河南茂盛机械制造有限公司| 江苏骏马压路机械有限公司| 温州机械制造有限公司| 深圳市高士达精密机械有限公司| 杭重工程机械有限公司| 临沂新天力机械有限公司| 徐州工程机械有限公司| 张市机械机械有限公司| 重庆春仁机械有限公司| 南京橡塑机械有限公司| 长沙机械制造有限公司| 徐州博丰钢铁有限公司| 浙江向隆机械有限公司| 苏州鼎木机械设备有限公司 | 兰州兰石重工有限公司| 杭州海特机械有限公司| 兴龙机械模具有限公司| 东莞正扬电子机械有限公司| 湖南申德钢铁有限公司| 上海中远海运重工有限公司 | 蓬莱巨涛海洋工程重工有限公司怎么样| 东莞市数控机械有限公司| 郑州市建新机械制造有限公司 | 安徽泰恒机械制造有限公司| 珠海市广浩捷精密机械有限公司 | 广州力丰机械有限公司| 上海信烨精密机械有限公司| 浙江长泰机械有限公司| 鞍山机械制造有限公司| 文水海威钢铁有限公司| 河南力神机械有限公司| 固尔琦包装机械有限公司| 郑州天龙机械有限公司| 上海楚尚机械有限公司| 亚德林机械有限公司| 江西中天机械有限公司| 固达机械制造有限公司| 上海台新食品机械有限公司| 宁波北仑机械有限公司| 中船重工环境工程有限公司怎么样| 淄博翔鹏机械有限公司| 广东 机械设备有限公司| 西安海焱机械有限公司| 苏州奥德机械有限公司| 华丽木工机械有限公司| 大连液力机械有限公司| 成都康博机械有限公司| 众旭食品机械有限公司| 咸阳联合机械有限公司| 临沂华星机械有限公司| 徐州丰展机械有限公司| 山西汉通机械有限公司| 富华重工有限公司老板| 阳春新钢铁有限公司| 河南东盈机械设备有限公司| 江西晟浔机械有限公司| 河南省机械有限公司| 中船重工环境工程有限公司| 自动化机械 上海有限公司| 江苏甲钢钢铁有限公司| 广州赛威机械有限公司| 浙江欧迈特减速机械有限公司| 大连工进机械制造有限公司| 东莞市博志达工程机械制造有限公司| 广州善友机械设备有限公司| 中山机械制造有限公司| 江苏力威机械有限公司| 广州盛广誉机械设备有限公司| 山东锦坤机械有限公司| 厦门市机械设备有限公司| 山推楚天工程机械有限公司| 东莞正为机械有限公司| 海宁市腾达机械有限公司| 抚顺中兴重工有限公司| 山东山建机械有限公司| 江苏海特尔机械有限公司| 新华机械制造有限公司| 南通明诺机械有限公司| 合肥华运机械制造有限公司| 西安星火包装机械有限公司| 大同机械 有限公司| 宁波海江机械制造有限公司| 安阳锻压机械工业有限公司| 诸城市博康机械有限公司| 武汉市快诚机械有限公司| 河南新起点印务有限公司| 立信染整机械深圳有限公司| 随州市恒大机械铸造有限公司| 宁波北仑机械有限公司| 温岭永进机械有限公司| 佛山顺德木工机械有限公司| 东莞启益电器机械有限公司| 大连宏大连杆机械制造有限公司| 南通奥普机械工程有限公司| 河南豪丰机械制造有限公司| 浙江富龙钢铁有限公司| 无锡市 机械有限公司| 上海帆铭机械有限公司| 武汉益达建设机械有限公司| 浙江劲豹机械有限公司| 芜湖中安重工自动化装备有限公司| 威海化工机械有限公司招聘 | 青岛金福鑫塑料机械有限公司| 常熟市机械有限公司| 东莞鸿祥机械有限公司| 青岛山森机械有限公司| 洛阳泽华机械设备有限公司| 上海 起重设备有限公司| 江西台鑫钢铁有限公司| 杭州联德机械有限公司| 山东祥远机械有限公司| 上海捷如重工机电设备有限公司 | 哈尔滨联科包装机械有限公司 | 江苏沃得农业机械有限公司| 成都中挖机械有限公司| 昆山铁生机械有限公司| 佛山精密机械有限公司| 重庆海松机械有限公司| 上海展焱包装机械有限公司| 常州精密机械有限公司| 山东同力达智能机械有限公司| 青岛给力机械有限公司| 重庆远风机械有限公司| 青岛奥硕数控机械有限公司| 济南启正机械工业有限公司| 江苏国天锻压机械有限公司| 杭州传动机械有限公司| 上海丁博重工机械有限公司| 浙江长泰机械有限公司| 潍坊圣旋机械有限公司| 山东万力起重机械有限公司 | 安徽 机械设备有限公司| 上海祎飞机械有限公司| 常矿起重机械有限公司| 济宁市兴旺机械制造有限公司| 山东鑫鑫机械有限公司| 重庆爱扬机械有限公司| 精密机械设备有限公司| 江阴锦澄钢铁有限公司| 重庆春仁机械有限公司| 鞍山机械制造有限公司| 博凯机械上海有限公司| 高臻机械设备有限公司| 自贡机械制造有限公司| 上海冠龙阀门机械有限公司官网| 河南 机械设备有限公司| 芜湖 机械 有限公司| 常熟 机械 有限公司| 佳先机械制造有限公司| 娄底 有限公司 机械| 浙江劲豹机械有限公司| 上海铁美机械有限公司| 上海石化机械制造有限公司| 贵州凯星液力传动机械有限公司| 江苏三麦食品机械有限公司| 江苏舜工机械有限公司| 威海汇鑫化工机械有限公司| 汕头市机械有限公司| 江门市机械有限公司| 招商局重工(江苏)有限公司| 浙江云广机械制造有限公司| 深圳市环球同创机械有限公司| 机械加工 有限公司| 莆田 机械有限公司| 江阴兴澄特种钢铁有限公司| 浙江鼎力机械有限公司| 上海华威焊割机械有限公司 | 上海凯机械有限公司| 山西 重工有限公司| 唐山市钢铁有限公司| 佛山市机械制造有限公司| 广州 机械有限公司| 永 机械 有限公司| 安徽食品机械有限公司| 成机械设备有限公司| 湖北鄂钢扬子重型机械制造有限公司| 昆明 机械 有限公司| 金韦尔机械有限公司| 浙江制药机械有限公司| 重庆 机械配件有限公司| 嘉兴 机械有限公司| 东莞市嘉鲁特注塑机械有限公司| 江苏凌特精密机械有限公司| 江苏羚羊机械有限公司| 龙工机械制造有限公司| 浙江建设机械有限公司| 新疆起亚铝业有限公司招聘| 阿特拉斯机械设备有限公司| 河南万泰机械有限公司| 大连港机械有限公司| 摩丁机械常州有限公司| 宁波传动机械有限公司| 河北荣信钢铁有限公司| 青州神工机械有限公司| 福建海源机械有限公司| 新宝泰钢铁有限公司| 江苏巨风机械制造有限公司| 郑州年旭机械有限公司| 海顺机械台州有限公司| 天津钢铁销售有限公司| 南海区机械设备有限公司| 唐山荣信钢铁有限公司| 上海方星机械设备制造有限公司| 深圳市钢铁有限公司| 大连鸿升机械有限公司| 安丘博阳机械制造有限公司| 江苏维达机械有限公司| 阳煤化工机械有限公司| 锦州万得包装机械有限公司| 舟山中天重工有限公司| 上海京雅机械有限公司| 青州包装机械有限公司| 宁波思进机械有限公司| 南阳东佳机械有限公司| 上海余特包装机械制造有限公司| 龙口中宇机械有限公司| 四川盛和机械设备有限公司| 山推重工机械有限公司| 唐山机械制造有限公司| 万杰食品机械有限公司| 安钢闽源钢铁有限公司| 苏州 工业机械有限公司| 徐州液压机械制造有限公司| 郑州市鼎盛机械制造有限公司| 哈尔滨联科包装机械有限公司 | 山东明威起重设备有限公司| 洛阳奥图机械设备有限公司| 制药机械设备有限公司| 青岛 重工 有限公司| 宁波 机械有限公司| 河南力博矿山机械有限公司| 常熟 机械有限公司| 徐州挖掘机械有限公司| 浙江万龙机械有限公司| 厦门 机械有限公司| 斯特精密机械有限公司| 台州市机械有限公司| 矿山起重机有限公司| 深圳市康铖机械设备有限公司| 山东诚铭建设机械有限公司| 珠海市机械设备有限公司| 饶阳鸿源机械有限公司| 沈阳东荣机械有限公司| 东莞市兆恒机械有限公司 | 山东国丰机械有限公司| 佛山市陶瓷机械有限公司| 上海神农机械有限公司| 合肥华运机械有限公司| 永盛达机械有限公司| 江阴市永昌药化机械有限公司| 浙江双鸟机械有限公司| 山东威达机械有限公司| 广州山推机械有限公司| 诸城市机械有限公司| 安宁市永昌钢铁有限公司| 福清市机械有限公司| 临沂盛德机械有限公司| 上海华威焊割机械有限公司| 华泰精密机械有限公司| 北京恒机械有限公司| 安丘瑞源机械制造有限公司 | 江苏谷登工程机械装备有限公司| 山东瑞泽重工有限公司| 阳谷山立克工程机械有限公司 | 湖南一田农业机械有限公司| 华信陶瓷机械有限公司| 上饶中材机械有限公司| 中车南口机械有限公司| 石家庄煤矿机械有限公司| 浙江天联机械有限公司| 上海鑫越包装机械有限公司| 天津国际机械有限公司| 山东造纸机械厂有限公司| 富阳 机械有限公司| 唐山粤丰钢铁有限公司| 华宝机械制造有限公司| 永腾弹簧机械设备有限公司| 宁波巨隆机械有限公司| 重庆市机械有限公司| 河北宏发机械有限公司| 杭州纳源传动机械有限公司| 江源机械制造有限公司| 山推重工机械有限公司| 山东锦坤机械有限公司| 普瑞特机械有限公司| 成都中挖机械有限公司| 上海瑞派机械有限公司招聘| 中交西安筑路机械有限公司| 佛山市劲雄机械有限公司| 南京儒一航空机械装备有限公司| 湖南 机械有限公司| 上海松井机械有限公司| 无锡前洲兴华机械有限公司| 招远市矿山机械有限公司| 上海三都机械有限公司| 常州艾隆精密机械有限公司| 山东矿山机械有限公司| 江西鑫通机械制造有限公司| 常州天山重工机械有限公司 | 泰兴石油机械有限公司| 太原重工轨道交通设备有限公司| 石家庄安瑞科气体机械有限公司| 苏州杰威尔精密机械有限公司| 济南华飞数控机械有限公司| 泰田液压机械有限公司| 天津钢铁销售有限公司| 北京北宇机械设备有限公司| 瑞安市天晟包装机械有限公司| 山东鲁工机械有限公司| 海瑞克隧道机械有限公司| 北京晨光兴业机械有限公司| 南安市机械有限公司| 苏州勤堡精密机械有限公司| 平湖成功机械有限公司| 常州先电机械有限公司| 温州朝隆纺织机械有限公司| 淮安机械制造有限公司| 科尼起重机设备(上海)有限公司| 无锡润和机械有限公司| 无锡盛达机械制造有限公司| 淄博晟峰机械有限公司| 起航中文小说有限公司| 湖北鄂钢扬子重型机械制造有限公司| 龙川航辉钢铁有限公司| 苏州德派机械有限公司| 上海鑫水机械有限公司| 上海铮潼起重机电设备有限公司| 河南天成矿山起重机有限公司| 鑫锐机械设备有限公司| 巨荣机械制造有限公司| 有限公司 印刷机械| 上海一达机械有限公司| 无锡胜麦机械有限公司| 河北机械设备有限公司| 常熟飞龙机械有限公司| 保定东利机械制造有限公司| 苏州华尔普机械有限公司| 山西 机械设备有限公司| 郑州华隆机械制造有限公司| 如东宏信机械制造有限公司| 徐州东亚钢铁有限公司| 泰安古河机械有限公司| 摩德娜机械有限公司| 开封市茂盛粮食机械有限公司| 合肥华运机械有限公司| 河南甲庚机械设备有限公司 | 山东机械份有限公司| 东莞市从创机械有限公司| 四川工程机械有限公司| 常熟市机械有限公司| 东莞 机械有限公司| 欧诺机械 有限公司| 义乌机械设备有限公司| 布勒机械设备有限公司| 温州市润新机械制造有限公司| 浙江正信机械有限公司| 常州浦发机械有限公司| 佛山市奥索包装机械有限公司| 青岛大牧人机械有限公司招聘 | 川崎精密机械苏州有限公司 | 鹤壁万丰矿山机械制造有限公司| 北京大森包装机械有限公司| 苏州金纬机械制造有限公司| 鸿江机械制造有限公司| 安徽食品机械有限公司| 苏州 机械 有限公司| 扬州华粮机械有限公司| 郑州沃尔德机械制造有限公司| 河南泰兴粮油机械设备有限公司| 山东宁联机械制造有限公司| 郑州亚美机械制造有限公司| 上海乾承机械设备有限公司| 湖州惠盛机械有限公司| 杭州化工机械有限公司| 食品机械制造有限公司| 青岛木业机械有限公司| 动力机械制造有限公司| 福建起然燃气设备有限公司| 山东凯达起重机械有限公司| 德耐尔压缩机械有限公司| 温州华推机械有限公司| 佛山建邦机械有限公司| 重庆中容石化机械制造有限公司 | 重庆工程机械有限公司| 大连滨海起重机吊具有限公司| 上海德仁橡塑机械有限公司 | 温州正钻机械有限公司| 江阴万恒机械制造有限公司| 山东嘉意机械有限公司| 佛山市康思达液压机械有限公司| 徐州丰展机械有限公司| 广州大圆机械设备有限公司| 玉环锐利机械有限公司| 大连升隆机械有限公司| 福建机械制造有限公司| 河北正大机械有限公司| 江苏宏威重工机床制造有限公司 | 山东平安工程机械有限公司| 苏州毕特富精密机械有限公司 | 山东科恳机械制造有限公司 | 全氏食品机械(上海)有限公司| 淄博中升机械有限公司| 杰西博工程机械有限公司| 杭州康比机械有限公司| 江苏别具匠心机械设备有限公司| 温州博大机械有限公司| 湛江恒润机械有限公司| 安徽永成电子机械技术有限公司| 密机械(西安)有限公司| 大连西格机械工具有限公司| 群韵饮料机械有限公司| 上海合劲传动机械有限公司| 台州路桥机械有限公司| 济南圣元机械工程有限公司| 重庆宝汇跨搏机械制造有限公司 | 文穗塑料机械有限公司| 三一工程机械有限公司| 浙江美华包装机械有限公司| 东营海河机械有限公司| 山东达普机械制造有限公司| 安钢闽源钢铁有限公司| 东莞市实诚机械有限公司| 无锡盛达机械制造有限公司| 泸州长江机械有限公司| 常州市日中精密机械有限公司| 九江萍钢钢铁有限公司电话| 济南 液压机械有限公司| 蚌埠行星机械有限公司| 迈安德食品机械有限公司| 济南艺高数控机械有限公司| 德州佳永机械制造有限公司| 杭州丽伟电脑机械有限公司| 营口京华钢铁有限公司| 昆山乙盛机械有限公司招聘启事| 恒兴机械设备有限公司| 天津动力机械有限公司| 上海紫永机械有限公司| 晋城福盛钢铁有限公司| 华力重工机械有限公司| 苏州宏呈祥机械有限公司| 连云港机械制造有限公司| 中安重工自动化装备有限公司| 山东锐驰机械有限公司| 湖北铁正机械有限公司| 首钢长白机械有限公司| 浙江华球机械制造有限公司| 青岛沃隆花生机械有限公司| 玉溪新兴钢铁有限公司| 天津蓝科机械有限公司| 合肥锦利丰机械有限公司| 鼎龙机械制造有限公司| 浙江科鑫重工有限公司| 东莞市佐臣自动化机械有限公司| 长兴军毅机械有限公司| 临清 机械有限公司| 上海明硕机械有限公司| 东莞三机械有限公司| 湖州卓信机械有限公司| 东莞市从创机械有限公司| 三一众力机械有限公司| 沈阳工程机械有限公司| 恒兴机械设备有限公司| 广州闽欣机械设备有限公司| 昆山总馨机械有限公司| 昆山 机械 有限公司| 江苏炬峰机械有限公司| 惠州市机械有限公司| 扬州三源机械有限公司| 起帆电缆有限公司上市| 皋兰兰鑫钢铁有限公司| 昆山乙盛机械有限公司招聘启事| 湖南博长钢铁贸易有限公司| 基伊埃机械设备天津有限公司| 山西立恒钢铁有限公司| 安阳三一机械有限公司| 威海汇鑫化工机械有限公司| 范县中鑫钢铁有限公司| 嘉兴敏实机械有限公司| 玛顿重工太仓有限公司| 昌邑市机械有限公司| 无锡远方机械有限公司| 东莞共荣精密机械有限公司| 中交西安筑路机械有限公司| 昆山瑞钧机械设备有限公司| 东莞市科机械有限公司| 苏州鸿安机械有限公司| 河南鼎科机械有限公司| 河南广泰机械有限公司| 陕西 机械有限公司怎么样| 翼虎动力机械有限公司| 新美星包装机械有限公司| 浙江云广机械制造有限公司| 浙江盛拓机械有限公司| 中山松德印刷机械有限公司| 苏州海骏自动化机械有限公司| 杭州萧山凯兴食品机械有限公司| 广东富华重工制造有限公司| 上海紫宏机械有限公司| 眉山千层弹花机械有限公司| 五矿钢铁西安有限公司| 长春泰盟机械制造有限公司 | 潍坊凯信机械有限公司| 重庆维庆液压机械有限公司| 上海 鑫机械设备有限公司| 南通振康机械有限公司| 机械自动化设备有限公司| 阿特拉斯机械设备有限公司| 深圳市精密机械有限公司| 东莞市瑞辉机械制造有限公司| 保定华光机械有限公司| 广州闽欣机械设备有限公司| 贵州凯星液力传动机械有限公司| 四平方向机械有限公司| 眉山千层弹花机械有限公司| 南京利德盛机械有限公司| 武安裕华钢铁有限公司| 苏州锐豪机械制造有限公司| 上海实机械有限公司| 浙江金辉机械有限公司| 鑫成机械设备有限公司| 上海赛峰包装机械设备有限公司| 徐州液压机械有限公司| 湖南汇杰机械设备有限公司| 福州闽台机械有限公司| 四川久进机械制造有限公司 | 百超玻璃机械有限公司| 沈阳祺盛机械有限公司| 上海化工机械厂有限公司| 重庆阿德耐特动力机械有限公司| 嘉兴精密机械有限公司| 江阴市西城钢铁有限公司| 永红铸造机械有限公司| 无锡水登机械有限公司| 上海起重电机厂有限公司| 河北巨牛机械有限公司| 福海鑫钢铁有限公司| 佛山钢铁贸易有限公司| 宝鸡中车时代工程机械有限公司| 石家庄嘉祥精密机械有限公司| 济南速雕数控机械有限公司| 扬州伏尔坎机械制造有限公司 | 上海山启机械制造有限公司| 沂南县宏发机械有限公司| 宁波市鸿博机械制造有限公司| 沈阳精密机械有限公司| 和和机械(张家港)有限公司| 吴江聚力机械有限公司| 聊城日发纺织机械有限公司| 舒勒锻压机械有限公司| 永胜机械工业有限公司| 温州市春来包装机械有限公司| 东莞市亿德机械设备有限公司| 成都万欣邦达机械制造有限公司 | 瑞达机械制造有限公司| 龙扬机械)有限公司| 扬州诺亚机械有限公司| 河北大恒重型机械有限公司| 扬州禹笑水利机械有限公司| 杭州海纳机械有限公司| 湖州三一重工有限公司| 曲靖呈钢铁有限公司| 阳宏机械制造有限公司| 青岛科尼乐重工有限公司| 新乐华宝塑料机械有限公司 | 汉威机械制造有限公司| 鲁山万通通机械制造有限公司| 山东博精化工机械有限公司 | 昆山裕邦机械有限公司| 斗山工程机械苏州有限公司| 唐山安丰钢铁有限公司| 河南天成矿山起重机有限公司| 广东万联包装机械有限公司| 上海科纳机械有限公司| 常州常林机械有限公司| 东莞市和明机械有限公司| 苏州昌瑞机械有限公司| 铁岭圣添机械有限公司| 博硕机械制造有限公司| 烟台博迈机械有限公司| 四平方向机械有限公司| 苏州乐嘉机械有限公司| 广州华运机械有限公司| 龙口中宇机械有限公司| 河南重型机械有限公司| 南京星德机械有限公司| 张市机械机械有限公司| 洛阳工程机械有限公司| 上海 包装机械 有限公司| 上海瑞阳机械有限公司| 南通苏诺特包装机械有限公司 | 江苏千里机械有限公司| 泰安正阳机械有限公司| 杭州天恒机械有限公司| 江苏古川机械有限公司| 三鑫重工机械有限公司| 日照市机械有限公司| 新乡市振动机械有限公司| 长沙晶锐机械有限公司| 诸城盛和机械有限公司| 广州新成机械技术有限公司| 山东卡特重工有限公司| 浙江佳成机械有限公司| 新力机械制造有限公司| 郑州中意矿山机械有限公司| 昆荣机械(昆山)有限公司| 大连 精密机械有限公司| 临清 机械有限公司| 江阴市勤业化工机械有限公司| 上海奕晟矿山机械有限公司| 山东龙起重工有限公司| 江苏佳成机械有限公司| 南通棉花机械有限公司| 浙江工程机械有限公司| 中船重工海空智能装备有限公司| 上海新麦机械设备制造有限公司| 苏州奥天诚机械有限公司| 上海恒麦食品机械有限公司| 东莞市旭田包装机械有限公司| 柳州中源机械有限公司| 大连 起 有限公司| 捷泰克机械有限公司| 南阳奇丰机械有限公司| 诸城市万兴机械有限公司 | 山东泰峰起重设备制造有限公司| 北京欧力源机械有限公司| 浙江赛力机械有限公司| 马鞍山 重工机械有限公司| 徐州农丰机械有限公司| 河北裕华钢铁有限公司| 蚌埠神舟机械有限公司| 元昆机械(昆山)有限公司| 苏州明基自动化机械设备有限公司| 苏州鸿本机械制造有限公司| 鸡西煤矿机械有限公司| 上海好机械有限公司| 飞虎机械制造有限公司| 京雕精密机械有限公司| 宁波迪恩机械有限公司| 洛阳中德重工有限公司| 沈阳凯力拓机械设备有限公司 | 宁波凯特机械有限公司| 宝鸡中车时代工程机械有限公司 | 诸城市恒顺机械有限公司| 柳州中源机械有限公司| 濮阳机械制造有限公司| 上海岭申机械有限公司| 玉环万全机械有限公司| 上海起重电机厂有限公司| 杭州力泰起重机械有限公司| 深圳印刷机械有限公司| 宁波北仑 机械有限公司| 川岛洗涤机械有限公司| 新力机械制造有限公司| 浙江鼎业机械设备有限公司| 中车南口机械有限公司| 玉环方博机械有限公司| 铜陵群力机械有限公司| 上海天勇机械设备有限公司| 浙江顶峰机械有限公司| 宁波市凯博数控机械有限公司| 大连 机械制造 有限公司| 劲源机械设备有限公司| 东莞市机械制造有限公司| 郑州华宏机械设备有限公司 | 南通惠生重工有限公司| 苏州孚杰机械有限公司| 杭州冠浩机械设备有限公司| 徐州宝丰钢铁有限公司| 中天印刷机械有限公司| 重庆庆达机械有限公司| 宁波安德机械有限公司| 江苏盐城机械有限公司| 镇江鸿泰钢铁有限公司| 苏州苏媛爱德克机械有限公司 | 温岭市林大机械有限公司| 常州 机械有限公司| 合肥食品机械有限公司| 重庆明天机械有限公司| 广东重工建设监理有限公司| 佛山市海裕机械有限公司| 安徽富鑫钢铁有限公司| 大连 重工有限公司| 荣嘉精密机械有限公司| 景德镇 机械有限公司| 南通凯迪自动机械有限公司 | 安宁市永昌钢铁有限公司| 山西高义钢铁有限公司| 江苏国天锻压机械有限公司| 武汉武建机械施工有限公司| 长沙三一重工有限公司| 鹤壁市双信矿山机械有限公司| 开封茂盛机械有限公司| 河北鑫晟机械有限公司| 淮安液压机械有限公司| 扬州精密机械有限公司| 青岛同三塑料机械有限公司| 深圳精密机械有限公司| 山西中德科工机械制造有限公司 | 养殖有限公司起名大全| 嘉善远景机械有限公司| 温州华印机械有限公司| 杭州驰林机械有限公司| 泰州市机械制造有限公司| 青岛联瑞精密机械有限公司| 常州浦发机械有限公司| 山东骏腾起重设备有限公司| 上海松井机械有限公司| 嵩县煜嵩机械有限公司| 无锡力马化工机械有限公司|