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
命令行

相关文章
相关标签/搜索