かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

ActiveRecordを入門(JRubyで)

前回、PostgreSQLの設定について書いたのは、これがやりたかったから!!!
早速やってみた。


やることは↓

この2つはgem install railsとgem install ActiveRecord-JDBCでサクっと終わる。

次に、PostgreSQLJDBCCLASSPATH環境変数に追加する。
とりあえずCLASSPATH環境変数使うの嫌だけど、ここで変なことして時間を食うのも勿体無いので、とりあえず環境変数に追加しといた。
PostgreSQLactiverecordという名前でDBを作っておく。
文字コードUTF-8です。
DBには下のDDLでテーブルを切った。

create table employees (
  id serial primary key,
  name varchar(50),
  age int
)

ActiveRecordのデフォルト設定に従うなら「idという主キーのカラムにシーケンスを割り当てる」「テーブル名は複数形にする」という決まりがある。
ここも従っておく。


早速Rubyのコード!!
PostgreSQLのユーザ名とパスワードをpostgresと仮定した場合のコードです。

require 'rubygems'
gem 'ActiveRecord-JDBC'
require 'jdbc_adapter'
require 'active_record'

# DBの接続に関する設定 JDBCと同じやね
ActiveRecord::Base.establish_connection(
  :adapter => 'jdbc',
  :driver => 'org.postgresql.Driver',
  :url => 'jdbc:postgresql://localhost:5432/activerecord?user=postgres&password=postgres'
)

# employeesテーブルに対応するクラス テーブルが複数形なのに対してクラスは単数形
class Employee < ActiveRecord::Base
end

# Tarou君10歳をDBに登録
emp = Employee.new
emp.name = "Tarou"
emp.age = 10
emp.save

# 全件取得して画面に出力
Employee.find(:all).each { |emp|
  puts "#{emp.id}: #{emp.name}"
}

うっし。できた!!
ただ、残念なことに…日本語文字化けしてしまいますorz
なぜだぁぁぁぁぁ!