Ruby操作MYSQL数据库

       今天闲来无事,就想起来继续学习学习ruby。看看ruby的sql操作。ms在ruby当中利用mysql的比较的多。好吧,我们就开始来用mysql吧。

      想想java当中操纵数据库首先得需要一个数据库驱动,当然ruby也不例外,自然也需要一个数据库驱动。ruby当中安装数据库驱动我感觉相比较java稍微复杂一点。

  • 首先,你需要在你的mysql数据库的bin目录下将文件libmySQL.dll拷贝到ruby安装目录下的bin文件下。
  • 其次,你需要到http://rubyforge.org/projects/mysql-win当中去下载一个驱动包mysql-2.7.3-mswin32.gem
  • 接着,我们在命令行下,切换到驱动包的安装目录。运行 gem install mysql-2.7.3-mswin32.gem。OK驱动安装完毕
  • 最后,我们需要在ruby安装目录的\lib\ruby\gems\1.8\gems\mysql-2.7.3-x86-mswin32\ext下将mysql.so文件拷贝到ruby安装目录下的\lib\ruby\site_ruby\1.8\i386-msvcrt文件当中。

      好了,万事具备,只欠东风了。我们要开始写代码了。

require  'DBcon'
begin
  dbh = Mysql.real_connect("localhost", "root", "sa","makedish", 3306)   #连接数据库本机:用户名:root 密码:sa 数据库:makedish 端口:3306
  dbh.query("drop table if exists test_foolfish")                                        #ruby执行语句
  dbh.query("create table test_foolfish(id int,name varchar(20))")
  dbh.query("insert into test_foolfish values(1,'你好')")
  dbh.query("insert into test_foolfish values(2,hello)")
  printf "%d rows were inserted\n",dbh.affected_rows                        #affected_rows返回受影响的行数

  res=dbh.query("SELECT name FROM test_foolfish")
  puts "===============\n"
  res.each_hash(with_table = true) do |row|
    printf "%d,%s\n",row["test_rb.id"],row["test_rb.name"]
  end
  puts "===============\n"
  puts "Server version:"+dbh.get_server_info
rescue Mysql::Error=>e
  puts "Error code:#{e.errno}"
  puts "Error message:#{e.error}"
  puts "Error SQLSTATE:#{e.sqlstate}" if e.respond_to?("sqlstate")
ensure
  dbh.close if dbh
end 

      研究以上代码,首先我们需要和数据库建立连接:

dbh = Mysql.real_connect("localhost", "root", "sa","makedish", 3306) 

      这里调用Mysql模块的real_connect方法。参数就不用多说了。建立连接后我们就需要对数据库进行相应的操作。

      ruby当中对数据库存在两种操作:一种是不用返回结果集的(例如insert,update,delete等等) 一种是需要返回结果集的(如select show等)。对于不返回结果集的操作,我们只需要使用dbh.query方法,传入需要执行的sql语句执行即可

      对于另一种需要返回结果集的则相对麻烦一些。执行完上面类似的语句之后,我们需要对结果集进行处理。我们可以将结果集一数组或者hash形式展现。这里我们使用hash方式展现。

 

res=dbh.query("SELECT name FROM test_foolfish")
  puts "===============\n"
  res.each_hash(with_table = true) do |row|
    printf "%d,%s\n",row["test_rb.id"],row["test_rb.name"]
  end

     each_hash方法当中添加with_table = true参数可以保证在执行多表查询的时候,多张表具有相同字段的尴尬。这样我们hash的key值就可以用“表名.列名”的形式出现。

      怎么样,很简单吧。试一试吧。今天也只看了一点点。等研究多了,再发布点新东西

MySQL与Ruby集成实践 1. 背景介绍 MySQL是一种流行的关系型数据库管理系统,而Ruby是一种动态、面向对象的编程语言。在Web开发中,MySQL和Ruby的集成是非常常见的。本文将介绍如何在Ruby中使用MySQL,并提供一些最佳实践和实际应用场景。 2. 核心概念与联系 MySQL是一种关系型数据库管理 阅读详情

相关推荐

掌握Ruby与DBI操作MySQL数据库的高级技巧

本文详细介绍了如何使用Ruby语言和DBI模块来查询和更新MySQL数据库中的记录。文章首先演示了如何查询工资超过1000的员工信息,然后介绍了DBI提供的多种数据获取方法,包括单行、多行及滚动抓取等。接着,文章通过示例展示了如何获取SQL语句的元数据,包括列名和列信息。最后,文章讲解了如何执行更新操作,包括事务的提交和回滚。

weixin_30591519的博客 497

Ruby Mysql

Ruby和MySQL的结合为开发动态、数据驱动的应用程序提供了一个强大的平台。通过安装和配置MySQL和Ruby MySQL驱动,您可以轻松地连接到MySQL数据库,并执行各种SQL操作。无论您是在开发简单的脚本还是复杂的应用程序,Ruby和MySQL都可以提供所需的工具和功能。

xyq2024的博客 635

Ruby与MySQL数据库交互操作指南

本文详细介绍了在Ruby环境下使用DBI模块进行MySQL数据库的更新、删除、事务处理以及异常处理等操作。通过具体的代码示例和步骤解析,提供了一套完整的数据库操作流程,旨在帮助开发者更好地管理和维护数据库。

weixin_42511373的博客 368

ruby-操作mysql

ruby-操作mysql ruby操作mysql数据库 以centos7.2为实验环境 Table of Contents 使用DBI访问Mysql 使用Mysql2访问Mysql DBI 安装DBI驱动 很多同学在公司是没有外网权限的,可以通过http/https代理使用gem源 proxy服务器可以使用squid作代理,只需更改端口,...

MaueiceWei999的博客 355

掌握Ruby语言中的数据库操作

本博客详细介绍了使用Ruby语言通过DBI模块与MySQL数据库交互的过程。文中通过实例代码演示了如何查询EMPLOYEE表中薪水超过1000的记录,并介绍了DBI提供的多种记录获取方法。此外,还探讨了如何更新数据库中的记录。...

weixin_35516624的博客 379

Ruby-mysql2一个现代的简单和非常快速的RubyMysql库

mysql2 - 一个现代的、简单和非常快速的Ruby Mysql 库

informix设置数据库默认插入时间_Ruby 数据库访问 - DBI 教程

本章节将向您讲解如何使用 Ruby 访问数据库。Ruby DBI 模块为 Ruby 脚本提供了类似于 Perl DBI 模块的独立于数据库的接口。DBI 即 Database independent interface,代表了 Ruby 独立于数据库的接口。DBI 在 Ruby 代码与底层数据库之间提供了一个抽象层,允许您简单地实现数据库切换。它定义了一系列方法、变量和规范,提供了一个独立于数据库...

weixin_34242698的博客 306

ruby 连接mysql的gem安装包

ruby 连接mysql的gem安装包

Ruby使用Mysql2连接操作MySQL例子解析

以上示例展示了如何使用Ruby的Mysql2库连接MySQL数据库,并执行查询和非查询语句、处理事务等操作。如果您有其他问题,欢迎随时问我。

IT老农民的博客 413

绝缘体上硅(SOI) vs 传统硅片:5个关键性能对比及适用场景分析

本文深入对比了绝缘体上硅(SOI)与传统硅片在功耗、速度、隔离性等5个关键性能维度的差异,并分析了各自适用场景。SOI技术凭借其独特的埋氧层结构,在低功耗、高频应用和极端环境下展现出显著优势,特别适合移动设备、汽车电子和航天应用。

weixin_30335575的博客 555

第三方系统(异构系统)基于token身份认证方式访问Ecology9的Restful接口Ecology9服务器配置部分

通过Token的认证方式调用Ecology9系统Restful业务接口服务器配置部分

svsou的专栏 2176

ruby mysql pool_Ruby操作MYSQL数据库

今天闲来无事,就想起来继续学习学习ruby。看看ruby的sql操作。ms在ruby当中利用mysql的比较的多。好吧,我们就开始来用mysql吧。想想java当中操纵数据库首先得需要一个数据库驱动,当然ruby也不例外,自然也需要一个数据库驱动。ruby当中安装数据库驱动我感觉相比较java稍微复杂一点。首先,你需要在你的mysql数据库的bin目录下将文件libmySQL.dll拷贝到ruby...

weixin_42533910的博客 180

深度学习Halcon中GPU显存利用率高,但GPU、CPU利用率较低,导致模型训练速度很慢,通过设置硬件参数的解决方法

深度学习Halcon中GPU显存利用率高,但GPU、CPU利用率较低,导致模型训练速度很慢,通过设置硬件参数的解决方法 前言 在训练自己模型的时候,会遇到GPU显存利用率高,但GPU、CPU利用率较低,导致模型训练速度很慢的问题。这个问题一方面是由于硬件没有设置到最佳工作状态,另一方面是代码中参数没有设置好。最近在跑Halcon DL遇到这个问题,而Halcon不像开源的几个框架那样自由,代码封装的比较多。所以遇到这种问题,只能在参数最优的情况下,通过设置硬件参数来提升性能。 当然,在跑DL之前,无论什么框

ZiLiangQin的博客 9914

ruby mysql数据库操作

require 'mysql' con=Mysql.new('localhost','root','root','test') con.query('set names utf8') rs=con.query('select * from demotb') p rs.num_fields() p '---------------------' num=rs.num_rows...

weixin_30710457的博客 132

Arduino+L298N电机驱动模块避坑指南:从接线到PWM调速的5个常见错误

本文详细解析了使用Arduino与L298N电机驱动模块时,从电源配置、跳线帽使用到PWM调速的5个常见错误与避坑指南。重点阐述了如何正确分离逻辑与电机电源、拔掉ENA/ENB跳线帽以实现PWM调速、理解H桥接线逻辑以控制直流电机正反转,并提供优化代码与散热建议,帮助开发者稳定驱动电机。

rust6ferris的博客 563

2026年华为od机试真题题库

OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)

面试高手的博客 19万+

Ruby DBI操作MySql数据库的方法

用Ruby操作数据库,可能不会在Ruby on Rails中用得到。但是这种使用Ruby直接操作数据库的方法,有时候还真可以派得上用场。我们都知道Ruby是一种类似Perl和Python的语言,但其功能却比这两种语言强大不知道多少倍。Ruby几乎全部继承了Perl的优点,又克服了Perl的缺点。而且完全面向对象,其功能之强大,Perl和Python绝对望尘莫及。 Ruby甚至可以取代传统的she...

weixin_30279671的博客 129

弱网、高热、只有 32MB 内存:恶劣环境下嵌入式 SoC 音视频开发的“不死”法则

永远不要假设。你申请一个 1920 宽的图像,硬件为了对齐(比如 16 字节对齐或 256 字节对齐),实际分配的一行可能有 1936 甚至是 2048 字节。那个多出来的部分叫Padding。如果你写代码时用来计算数据量,或者用Width来做指针偏移:恭喜你,你的画面会像被风吹歪的百叶窗一样,产生斜切畸变。永远使用VB_CONF结构体里返回的u32Stride字段。这是区分新手和老手的试金石。第六章 ISP 调优(Tuning)实战:为什么你调出的画面像个“鬼片”?

大模型大数据攻城狮的专栏 1769

ruby mysql 占位符_ruby操作常用数据库

使用Ruby DBI模块目录Ruby DBI模块为ruby程序访问数据库提供了一个与数据库无关的接口,就像perl的DBI模块一样。这篇文章将讲述如何编写基于DBI的ruby程序。这篇文章是对DBI规范文档(specification documents)的补充,而不是要替代规范文档,更多的信息请参见“资源”一节。Ruby的DBI 模块架构分为两层:数据库接口层(database interfac...

weixin_29363791的博客 349

【原理图PCB专题】Cadence 17.4版本导出excel版本坐标文件

Cadence 17.4版本导出坐标文件往往都是txt格式,并且无标题、导出时间、导出设计工程多名称等信息。那么怎么样才能导出有带这些信息的excel版本并格式好看的坐标文件呢?

一点硬件 2764

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ruby mysql pool_ruby mysql数据库操作

require 'mysql'con=Mysql.new('localhost','root','root','test')con.query('set names utf8')rs=con.query('select * from demotb')p rs.num_fields()p '---------------------'num=rs.num_rows()for i in 0..num-...

weixin_32176627的博客 147

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ruby on rails操作mysql数据库

一、插入:     1、new()方法     a = Category.new(:name => 'Ruby', :position => 1)     a.save     save 还有相同方法”save!”     有无惊叹号的差别在于validate资料验证不正确的动作,     无惊叹号版本会回传布林值(true或false),有惊叹号版本则是验证错误会丢出例外。

u010258505的专栏 1185

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ruby mysql 占位符_ruby操作常用数据库 - 使用DBI[翻译 转帖]

使用Ruby DBI模块目录Ruby DBI模块为ruby程序访问数据库提供了一个与数据库无关的接口,就像perl的DBI模块一样。这篇文章将讲述如何编写基于DBI的ruby程序。这篇文章是对DBI规范文档(specification documents)的补充,而不是要替代规范文档,更多的信息请参见“资源”一节。Ruby的DBI 模块架构分为两层:数据库接口层(database interfac...

weixin_35055546的博客 243

linux ruby mysql_快速入门:使用 Ruby 进行连接 - Azure Database for MySQL | Microsoft Docs

您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.快速入门:使用 Ruby 连接到 Azure Database for MySQL 并查询其中的数据Quickstart: Use Ruby to connect and query data in Azure Databa...

weixin_39800112的博客 146

Ruby连Mysql数据库

1、安装Mysql          我这里装的mysql5.5 2、复制  MySQL\MySQL Server 5.5\lib\libmysql.dll 到ruby/bin 目录 3、安装 mysql-mingw32.gem F:\Ruby>gem install mysql Fetching: mysql-2.8.1-x86-mingw32.gem (100%) Succes

张航的博客 8267
上一篇: Ditchnet jsp tabs tiglib的部署与使用
下一篇: axis学习小记(一)
refactaar
博客等级 码龄17年 0粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值