windows上使用mysql2

想在windows上做ruby应该的可能很底,ruby服务器在windows上运行速度非常慢而且配置相当麻烦,做桌面开发就更困难了,所以能使用ruby的地方基本停留在个人工具上,最近有些兴趣用ruby生成一些java开发代码,发现效果还不错,打包工具使用ocra,主要涉及到的连接数据库的问题, 在oracle中,使用的是dbi+oci8;在mysql中则要麻烦一点,因为那个mysql gem很久没更新了,且存在编码问题。所以得折腾下,使用mysql2,mysql2的安装可见下面文章:
[url]http://rubyer.me/blog/138[/url]
但这个mysql2一般是作为rails3的一部分,主要在activerecord中使用,所以基本上没什么有用的文档,好在其本身使用也不复杂,看了一下它的example,然后写了个程序试了下,居然能用:

require 'mysql2'

client = Mysql2::Client.new(:username => "root",:password=>"200000",:database=>"test")
results = client.query("select * from area");
results.each do |hash|
puts hash.map { |k,v| "#{k} = #{v}" }.join(", ")
end

上面代码中Client默认连接主机为localhost,端口为3306,results很简单,代码如下:

module Mysql2
class Result
include Enumerable
end
end

即,Result就是个Enumerable。

但是这个Result API异常的简单,没有提供任何额外的方法,比如dbi gem还提供了如column_info这类的方法,但是mysql2并没有提供,只能手动查询获取,不过这样这好,要什么就查什么,没有什么限制,如在mysql中查询相应表的列信息可以这样:

SELECT COLUMN_NAME,COLUMN_TYPE,COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_NAME='area'

获取表信息查找information_schema.TABLES即可。

通过执行SQL语句还获取列信息虽然麻烦点,但全面完整。其最大的缺点就是不能跨数据库,当然稍微高级一点的用法都是数据库特有的,没办法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值