Ruby鏈接MySQL數據庫的通常步驟

這段時間在學習Ruby,只是剛纔入門而已。 mysql

正好今天學習ruby的持久化方式,使用的是MySQL數據庫。按照書本的方式,僅僅的require 「mysql」 (引人mysql)發現報找到不到mysql文件。網上百度才知道沒有安裝驅動包(其實我就懷疑那本書有問題,怎麼不安裝數據庫驅動包就直接能夠使用呢?暗暗的鄙視下) sql

(1)安裝MySQL驅動包,在http://rubyforge.org/projects/mysql-win 下載驅動包,而後使用命令行方式進入放該驅動包的文件夾,使用(gem install 驅動包名) 命令進行安裝 數據庫

(2)在Mysql安裝目錄的bin或者lib 目錄下,找到 libmySQL.dll ,將該文件Copy到 Ruby安裝目錄的 bin目錄中。注:放下這樣仍是會報那個錯誤,而後把 require 「mysql」 中的雙引號改成單引號就不會出錯了,不知道是否是個人操做緣由形成的。 ruby

----------------------------------------------- 學習

進行上面的步驟後發現仍是不能鏈接Mysql數據庫,繼續找問題,而後發現: 測試

(3)還要安裝rdoc,到http://rubyforge.org/frs/?group_id=627下載,而後使用命令行方式進入放該文件的文件夾,使用(gem install 驅動包名) 命令進行安裝 ui

通過以上三個步驟就能夠使用ruby操做MySQL數據庫了 spa

附測試代碼: .net

class Score
  def initialize(id, subject, score, student_name, explain)
    @id = id
    @subject = subject
    @score = score
    @student_name = student_name
    @explain = explain
  end
  
  attr_accessor :id,:subject,:score,:student_name,:explain
  
end


require 'rubygems'
require 'mysql'


def createSQL(score)
  "insert into score(id,subject,score,student_name) "+
  "values(#{score.id},'#{score.subject}',#{score.score},'#{score.student_name}')"
end


def saveScore(dbh,score)
  sql = createSQL(score)
  puts sql
  dbh.query(sql)
  if(dbh.affected_rows == 1)
    puts "學生#{score.student_name}的成績加入到數據庫"
  end
end


#準備向數據庫插入的數據
peter = Score.new(1,"math",83,"peter","ddd")
hello = Score.new(2,"math",80,"hello","ccc")
world = Score.new(3,"math",89,"world","cccc")
eral = Score.new(4,"math",50,"eral","aaaaaaaa")
marry = Score.new(5,"math",100,"marry","bbbbbbbbb")


#建立數據庫鏈接
begin
  dbh = Mysql.real_connect("localhost","root","root","banji",3306)
  saveScore(dbh,peter)
  saveScore(dbh,hello)
  saveScore(dbh,world)
  saveScore(dbh,eral)
  saveScore(dbh,marry)
 rescue Mysql::Error =>e
  puts e
  
end
命令行

相關文章
相關標籤/搜索