DBIx::Class はじめの一歩

  1. DBIx::Class::Manual::DocMap をみてどんなドキュメントがあるのか知る。
  2. DBIx::Class::Manual::Intro を読んで作法を知る。
  3. DBIx::Class::Manual::Example を読んで雰囲気をつかむ。実際やってみる。
  4. DBIx::Class::Manual::Troubleshooting にも書いてあるけど,実際にどんな SQL が発行されるのかは,デバッグモードにすればわかる。
    • $schema = MySchema->connect(...); したあとに,$schema->storage->debug(1);
  5. おもに 3 種類のレイヤがある。
    • テーブルスキーマを定義する DBIx::Class の継承クラス
      • DBIx::Class::ResultSource のメソッドを使うとテーブル定義とかいろいろ調べられる。
    • ResultSet クラス
    • 結果レコードクラス
      • $obj->field_name で直接アクセスできるし,
      • DBIx::Class::Row のメソッドも使える。
  6. Relationship を定義しないと使えないわけではない。あると便利,というくらいの気持ちで。
    • $schema->resultset('Artist')->search({ id => $schema->resultset('CD')->find(1)->artist_id})->first->name;
    • みたくなってめんどい〜というときに,たとえば belongs_to でリレーション貼ってると
    • $schema->resultset('CD')->artist->name; のようにアクセスできる。
    • しかも prefetch すると自動的に JOIN してくれてウマー
  7. DBIx::Class::Manual::Cookbook をみてどんな機能があるのか知る。
    • でも最初から全部使いこなそうと思わない。