ブログが続かないわけ

この日記のはてなブックマーク数
Webエンジニアが思うこと by junichiro on Facebook

生DBI + SQL::Maker がちょうどいい

このエントリーを含むはてなブックマーク hateb

Perl でDB

今年に入ってからまたPerl を使うことが多くなってきていました。画面を伴うものはだいたいPHP で書いて、そうでないもの、例えばバッチ処理のようなものはPerl で書くことが多いので、バッチを書くことが多くなってきているということです。

Perl でDB を扱うときは、少し前まではDBIx::Class を好んで使っていたので、既存の案件のカスタマイズなどではいまも使うことになっています。しかし、新規に何か作ろうと思うと、スキーマを作るのが面倒に思えてなりません。ワンライナーで作れるのですが、それすらも面倒に思えてきてしまいました。

そもそも、簡単な処理しかしないのであれば、DBIlC は大袈裟な気がしてしまいます。DBIx::Skinny なども検討したのですが、そもそもO/Rマッパーが不要なんじゃないかというくらいの小さな規模では、そういうものもあまり使う気になれませんでした。

そこで、基本に立ち返り、生のDBI を使うことにしました。ただ、SQL をずらずらと書くのは、書くことそのものはそんなに嫌じゃないのですが、ソースの見た目があまり好きではないので、その部分に、SQL::Maker を使いました。

本当にシンプルな使い方しかしていないのですが、逆に、そういうときにはとてもいいと感じました。

最初、driver になにも指定しなかったのですが、そうするとなんだか怒られてしまいましたので、どうしたら良いのか迷いましたが、ソースを拝見したところなんとなく適当になにを入れても今回は大丈夫そうでしたので、とりあえずPg といれておきました。いい忘れてしましたが、試した環境はPostgreSQL です。

1:n の関係にあるhobby のinsert も簡単です

SELECT

それぞれのテーブルからいまinsert したものを削除してみる

条件にスカラーリファレンスを使う

イコール以外のときはスカラーリファレンスを使えばいいです。

どのCPAN モジュールを使えばいいか迷ったら

この本を読めば、たいていのことがわかるはずです。(著者いわく)。「こういうことをしたいけど、ちょうどいいモジュールあるかな?」とか、「これをやるためには、いくつかモジュールの選択肢があるけど、どれを使うのがいいのかな?」というような疑問に答えてくれると思います。

この記事のトラックバックURL
http://en.yummy.stripper.jp/trackback/1418088
トラックバック
コメント









関連情報