2011/11/19

[Perl][ORM][Teng] Tengでbulk_insertする場合はTeng::Plugin::BulkInsertを使おう (追記: bulk_insertがcoreに取り込まれました)

0.14_01からbulk_insertはcoreに取り込まれました!!

Plugin::BulkInsertはまだ残っているようですが、DEPRECATEDです。load_pluginを使わずに、そのままbulk_insertを使えます


Tengでbulk insertをしたくなったのですが、bulk_insertのmethodがないのでSQL::Makerで書いてしまいました。
後でTwitterでnekokakさんにPluginにあるよと教えていただいたので、再実装しなくて大丈夫です!

ちなみに現在(0.14)のPlugin以下はこんな感じ。

Teng/Plugin
    ├── BulkInsert.pm
    ├── Count.pm
    ├── FindOrCreate.pm
    ├── Pager
    │   └── MySQLFoundRows.pm
    ├── Pager.pm
    └── Replace.pm

使い方は簡単。Tengを継承したクラスでload_pluginを呼ぶだけです。後は普通にbulk_insertを使えます

    package MyDB;
    use strict;
    use warnings;
    use parent 'Teng';
    __PACKAGE__->load_plugin('BulkInsert');

    # in your script 
    my $teng = MyDB->new(...);
    $teng->bulk_insert(
        'tweet',
        [
            { id => 1, tweet => 'hoge' },
            { id => 2, tweet => 'fuga' }
        ]
    );

0 件のコメント:

コメントを投稿