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

    記事を共有