[Ruby] RubyDBI
データベースの用意は完成.こいつをRubyからいじってみる.
なんと,Rubyからデータベースを気にせず?プログラミングができるインタフェースが用意されているという.
そいつをインストールしてみる.
Ruby/DBIインストール for MacOSX(環境あんまり関係無いと思うが)
MySQLと,PostgreSQLを両方とも使ってみたいが,とりあえず,PostgreSQLで試してみる.
必要なモノは,SQLite,SQLの拡張モジュール?,Ruby/DBIの3つ.
これらを,この順番でインストール.
SQLite
こいつは,普通通り,
>./configure >make >sudo make install
でOK.
PostgresSQL用のモジュール
こいつは,Rubyのスクリプトでmakeの設定をする.
>ruby extconf.rb --with-pgsql-dir=/usr/local/pgsql >make >sudo make install
これで,OK.extconf.rbのオプションはググって参考にした.
※MacOSX Tiger 10.4.5,Ruby 1.8.4
Ruby/DBI
こいつもRubyのスクリプトで.
>ruby setup.rb config --without=dbd_sybase >ruby setup.rb setup >sudo ruby setup.rb install
これで,OK.上記と同様にextconf.rbのオプションはググって参考にした.
テスト〜早速試す
PostgresSQLからデータを読み込むスクリプト書いてみる.
前のPostgreSQLの設定で試したデータベースをのぞいてみる.
データベースはこんな感じ.
test=# select * from human; name | age ----------+----- hoge | 20 hogehoge | 27 (2 rows)
スクリプト.
#!/usr/local/bin/ruby require "dbi" dbh = DBI.connect("DBI:Pg:test", 'username', 'passowrd') if(dbh) print "connected.?n" # select from datatable "human" sth = dbh.prepare("select * from human") sth.execute # pirnt each row from db. while row=sth.fetch do print row,"?n" end dbh.disconnect else print "connection failed.?n" end
これでOK.実行してみる.
>ruby test.rb >connected. >hoge20 >hogehoge27
をを!できた.でも,なんだか要素がくっついている・・・.