DBIのRootClassを使うとScope::Container::DBIで接続を管理しつつ、Amon2::DBIが使えます。

#!/usr/bin/env perl

use strict;
use warnings;
use 5.12.0;
use Scope::Container::DBI;

my $dbh = Scope::Container::DBI->connect(
     'dbi:SQLite::memory:', '', '',
     { RootClass => 'Amon2::DBI' }
);

$dbh->do(q{CREATE TABLE foo (e)});
$dbh->insert('foo', {e => 3});

$dbh->do_i('INSERT INTO foo ', {e => 4});
say join(',', map { @$_ } @{$dbh->selectall_arrayref('SELECT * FROM foo ORDER BY e')});

eval {
    $dbh->insert('bar', {e => 3});
};
say $@;

Amon2を使うと、utf8の自動設定やエラー処理、Nested Transaction、DBIx::Interpをつかったクエリ生成がサポートされるので便利ですね

このブログ記事について

このページは、Masahiro Naganoが2011年4月 1日 12:48に書いたブログ記事です。

ひとつ前のブログ記事は「Plack::Middleware::Session もしくは Plack::Session::Store::DBI バージョン 0.14 の変更点について」です。

次のブログ記事は「Perl CPAN モジュールガイド」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja