はじめまして。

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で作る分にはほぼ使う機会は無いと思いますが、機会があれば活用してみてください。

ブックマークに追加する

.
web開発ならKBMJ
Rubyでのwebシステム開発は
実績豊富なKBMJにお任せ下さい
iPhone開発
iPhone開発は
KBMJにお任せ下さい
ブラウザゲーム エインヘリアル
ブラウザゲーム「エインへリアル」
αテスター募集中
オープンソースECパッケージ エレコマ
オープンソースECパッケージ
「エレコマ」

プロフィール

TrinityT
TrinityT
TrinityTです。

0x17歳で就職し、組み込み(ICカード)→MFC→大規模金融バッチ系(C++,STF)→金融系Web(JSF+Spring)と来て、2007年に株式会社KBMJに転職。
主にRubyOnRailsとSeaser2でWebアプリ開発に従事。
得意技はCapistrano。
最近はAndroidアプリにも手を出し始めました。

個人ブログ:TrinityT's LABO

最近チェックした記事

最新記事

アーカイブ

アクセスランキング

KBMJのWebソリューション
Ruby on railsの開発ならKBMJ
株式会社ケイビーエムジェイ