Ruby连接MySQL数据库的一般步骤

这段时间在学习Ruby,只是刚才入门而已。

正好今天学习ruby的持久化方式,使用的是MySQL数据库。按照书本的方式,仅仅的require “mysql” (引人mysql)发现报找到不到mysql文件。网上百度才知道没有安装驱动包(其实我就怀疑那本书有问题,怎么不安装数据库驱动包就直接可以使用呢?暗暗的鄙视下)

(1)安装MySQL驱动包,在http://rubyforge.org/projects/mysql-win 下载驱动包,然后使用命令行方式进入放该驱动包的文件夹,使用(gem install 驱动包名) 命令进行安装

(2)在Mysql安装目录的bin或者lib 目录下,找到 libmySQL.dll ,将该文件Copy到 Ruby安装目录的 bin目录中。注:放下这样还是会报那个错误,然后把 require “mysql” 中的双引号改为单引号就不会出错了,不知道是不是我的操作原因造成的。

-----------------------------------------------

进行上面的步骤后发现还是不能连接Mysql数据库,继续找问题,然后发现:

(3)还要安装rdoc,到http://rubyforge.org/frs/?group_id=627下载,然后使用命令行方式进入放该文件的文件夹,使用(gem install 驱动包名) 命令进行安装

经过以上三个步骤就可以使用ruby操作MySQL数据库了

附测试代码:

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



转载于:https://my.oschina.net/bravozu/blog/84689

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值