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