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

AMD Ross FPGA Agent 实战:用 AI 驱动 Vivado 开发流程

在 EDA 领域,FPGA 开发长期面临工具链重、反馈周期长、报错晦涩等痛点。AI Agent 通过自然语言交互与工具调用,将 Vivado 的 Tcl 批处理流程封装为可编排、可观测的智能体,显著降低查文档与读报告的时间成本。其核心在于 Harness 与 Agent 的协同:Harness 提供安全执行环境,Agent 负责决策与迭代。典型应用包括工程创建、约束生成、综合实现报告解读及比特流失败排查。本文以 AMD Ross 为例,拆解其架构设计与实操方法,帮助开发者理解如何将 Agent 落地到高门槛

weixin_29189363的博客 1034

shader基于高度的权重混合

效果图: 基于高度的权重混合 , 效果描述: (1)混合:三层混合, 例如 第一层是草,第二层是石头,第三层是沙子,三者混合显示 (2)权重: 三层的权重的和 为1, 三者是此消彼长的关系 (3)高度:高度会限制或者说是 束缚 着 效果 关于混合,再多说几句: (1)基于权重的混合:权重 ,跟顺序没有关系 只跟权重的大小有关系(在一层一层界限不清晰的地方,特别适用!!效果极好!!!!) (2)基于叠加的混合: 叠加 就是 一层一层的往上加。。。。 所以顺序特别重要(在雪地等效果中使用:因为

木马人 1118

ruby mysql pool_Ruby操作MYSQL数据库

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

weixin_42533910的博客 180

【Linux内核】Linux内核裁剪完全指南:从理论到实战的系统优化

在嵌入式设备、专用服务器和物联网系统日益普及的今天,如何让Linux系统在资源受限的环境中高效运行成为开发者必须面对的问题。Linux内核裁剪正是解决这一问题的关键技术,它通过移除不必要的内核组件,打造出更精简、更安全、更高效的自定义操作系统。本文将系统全面地介绍Linux内核裁剪的完整流程和实用技巧,帮助您掌握这一核心技能。Linux内核裁剪是一项结合技术知识与实践经验的系统工程。明确需求:裁剪前必须清晰了解目标系统的硬件配置和功能需求。循序渐进:采取小步修改、反复测试的策略,避免一次性大幅修改。

撬动未来的支点的专栏 1390

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

pe卸载win10更新补丁_禁用Win10系统更新

众所周知,最近WIN10的强制更新导致了很多问题。如:(部分专业软件系统更新后无法使用,硬件中键盘、鼠标、指纹之类的硬件,更新补丁后失灵等问题)。而之前的禁用WindowsUpdate的方法已经失效。下面我们另辟蹊径,利用系统权限的方法使Win10无法更新,达到禁用更新的目的。1.计算机管理-服务中禁用Windows Update服务。2.打开C:\Windows\softwareDistribu...

weixin_39702479的博客 1万+

[毕设项目-大模型微调]现代文翻译文言文【基于LLaMA3.1-8B微调】

教你基于LLaMA3.1-8B微调如何做到现代文翻译文言文

逐梦苍穹的博客 2296

Ruby DBI操作MySql数据库的方法

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

weixin_30279671的博客 129

STM32G0/G4无刷电机硬件设计与FOC控制实现

无刷直流电机(BLDC)和永磁同步电机(PMSM)的矢量控制依赖于高精度电流采样、实时SVPWM调制与闭环PI调节等核心技术。其底层实现需兼顾电机本体建模、坐标变换(Clark/Park)、死区补偿及硬件资源约束。STM32G0系列凭借CORDIC协处理器与超低功耗特性,适用于成本敏感型有感FOC应用;而STM32G4集成运放、FMAC滤波器与高级定时器,可支撑高性能无感控制与多源传感融合。该技术广泛应用于机器人关节、智能云台、伺服驱动等场景,是嵌入式电机控制工程师必须掌握的工程化落地能力。

weixin_35751412的博客 121

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

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

weixin_29363791的博客 349

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ruby on rails操作mysql数据库

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

u010258505的专栏 1185

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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、付费专栏及课程。

余额充值