這段時間在學習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
命令行