ホーム DoRuby RubyでActiveRecordを使わないでDBに接続する方法

RubyでActiveRecordを使わないでDBに接続する方法

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

はじめまして。

KBMJでエンジニアをしているTrinityTです。

さて、通常RubyOnRails環境でDBアクセスする場合、ActiveRecordを使用します。Rails開発ではもちろん僕も恩恵にあやかっていたのですが、バッチ処理の実装中、Ruby単体でDBアクセスしたほうが良いのでは?というケースがでてきました。

そこでコレを機会にActiveRecordを使わないでアクセスする方法を調べてみました。

ここではMySQLPostgreSQLで試してみることにします。

検証した環境

OS:WindowXP SP2

Ruby:1.8.6(インストール済)

RubyGems:0.9.5(インストール済)

MySQL編

(1)DBコネクタインストール

手っ取り早くRubyGemを使ってインストールします。

C:\>$gems install mysql

(2)ソース上で「require ‘mysql’」を記述してモジュール読み込み

 $KCODE=”UTF8″
 require ‘mysql’

 # 接続

 my = Mysql::new(“localhost”,”hoge”,”hoge”,”hoge”)
 # 文字セットをUTF-8に設定

 my.query(“set character set utf8”)

 res1 = my.query(“select * from huga”)
 my.close

※API説明

Mysql::new(“host”, “user”, “passwd”, “db”)

host:ホスト名

user:ユーザ

passwd:パスワード

db:DB名

PostgresSQL編

(1)DBコネクタインストール

C:\>$gems install postgres

(2)ソース上で「require ‘postgres’」を記述してモジュール読み込み

 $KCODE=”UTF8″
 require ‘postgres’

 # インスタンス生成

 pos = PGconn.connect(“localhost”, 5432, “”, “”, “hoge”,”hoge”,”hoge”)
 res1 = pos.exec(“select * from huga”)
 pos.close

※API説明

PGconn.connect(pghost, pgport, pgoptions, pgtty, dbname, login, passwd)
pghost : サーバのホスト名(文字列)
pgport : サーバがlistenしているポート番号(整数)
pgoptions : backendを起動する際のオプション(文字列)
pgtty : backendがデバッグメッセージを表示するtty(文字列)
dbname : 接続するデータベース名(文字列)
login : ユーザ名(文字列)
passwd : パスワード(文字列)

どちらのDBにも思いのほか簡単にアクセスできました。

WebアプリをRailsで作る分にはほぼ使う機会は無いと思いますが、機会があれば活用してみてください。

記事を共有

最近人気な記事