ActiveObjectsすげー

最近、Railsの勉強会に参加したりして、ActiveRecordって便利だなぁーなんて思っていたんですが、そういえばJavaにも似たようなライブラリがあったっけ。ということでActiveObjectsをちょっと調べてみました。

どんなものかというと、オブジェクトを操作するかのようにRDBを使ってくれるうれしいライブラリです。SQLは記述しません。まずはサンプルとして、主キー指定した検索。

EntityManager manager = new EntityManager(
"jdbc:hsqldb:hsql://localhost/", "sa", "");
Emp aEmp = manager.get(Emp.class, 7499);

処理はこれだけ。Empというクラスは実はインターフェースです。これは用意しておかなければならない。
public interface Emp extends Entity{
@PrimaryKey
public int getEmpno();
public void setEmpno(int n);
public String getEname();
public void setEname(String s);
}

このインターフェースの実装クラスはどこにあるのかというと、ActiveObjectsが自動的にプロキシを生成してくれるので自分で作る必要はないです(自作することも可能)。SQLも書く必要はなくインターフェース名がテーブル名、アクセッサメソッド名が列名のように使用されてSQLが生成される。あとはアノテーションで付加情報を与える。

全件検索
for (Emp emp : manager.find(Emp.class)){ //findはEmp[]を返す
System.out.println(emp.getEmpno() + ":" + emp.getEname());
}

Genericsが使えるので、Emp[]が返却されるのが便利。

更新
Emp aEmp = manager.get(Emp.class, 7499);
aEmp.setEname(aEmp.getEname() + "_HOGE");
aEmp.save();

オブジェクトを取得して中身を変更後、saveメソッドでUpdateメソッドが発行される。

おもしろいなぁ。
ActiveObjectsは(大部分の他のORMと同じように)代理キーを使うことを前提としている。でも私の業務でのことを考えると、DBの主キーはほとんどの場合自然キーで、代理キーを主キーに使っているケースはあまりない。代理キーを使うべきなのは分かっているんだけど、既存システムでDBが出来上がっているとどうにもならないから致し方ない。そんな理由で私の業務的にはちょっと採用しにくい。そういうケースではやはりiBATISのほうがしっくりくるなぁ。

参考サイト

プログラミングRuby 第2版 言語編
プログラミングRuby 第2版 言語編


これだけは知っておきたいWordのTips

プログラムの仕様書なんかはExcel文書ばっかりでうんざりします。。。なぜ文章をWordでなくExcelで書くかというと、「Wordは勝手に操作されて使いにくい。いわゆる方眼Excelの方が直感的に記述できるからいい。」と言います。
確かにWordは使いにくいです…。でもExcelも印刷のことを考えると頭が痛いですよ。Excelの細かい回避策を覚えるのもいいですが、Wordにこんな設定してみてください。かなりの作業でWordを自分の支配下におけます。

長文記事ゆえに、いきなりまとめ

  • [ツール]-[オートコレクトのオプション]-[入力オートフォーマット]のもろもろの設定
  • [ツール]-[オートコレクトのオプション]-[オートコレクト]のもろもろの設定
  • [ツール]-[オプション]-[スペルチェックと文書校正]の“自動スペルチェック”、“自動文書校正”
  • [ツール]-[オプション]-[編集と日本語入力]の“書式の履歴を維持する”
  • [ツール]-[オプション]-[全般]の“オートシェイプの挿入時、自動的に新しい描画キャンバスを作成する”
  • [書式]-[段落]-[体裁]タブの“英単語の途中で改行する”
  • 改行はSHIFT+ETNER、改段はENTER

Continue reading


ipod touch用充電機器レビュー

ipod touchは標準では、パソコンのUSB経由でしか充電できないので、こんな機器を購入しました。
どちらもipod touchで問題なく使用できています。

PLANEX 「充電万能」iPod対応 USBモバイル充電器 PL-UCHG01
PLANEX 「充電万能」
iPod対応 USBモバイル充電器 PL-UCHG01
電源コンセント→USBのアダプタ。
ipod以外にもたいていのUSB機器に使用可能
PLANEX 「充電万能」iPod専用USB充電ケーブル BN-IPOD-C
PLANEX 「充電万能」
iPod専用USB充電ケーブル BN-IPOD-C
ipod標準添付のUSBケーブルと同等。巻き取り可能

USBケーブルは、ipod touchに付属してきた標準のものでもOKです。ただ私は家用と持ち歩き用で2つ目が欲しかったので購入しました。

ipod以外にも充電できるように、USB出力アダプタとUSBケーブルに分けて購入しました。willcom PHS(WX320K)にも充電できるので非常に便利です。このアダプタとUSBケーブルで充電した方が早く充電が完了するような気がします。(気のせい?)