タグ

tengに関するbarlogのブックマーク (3)

  • #08 search - Articles Advent Calendar 2011 Teng

    今日はsearchメソッドを紹介します。 まず、searchメソッドはsingleのようにPRIMARY KEYで1行取得するわけではないが、 そんなに複雑じゃない場合に利用するといいと思います。 my $itr = $teng->search('user', +{name => 'nekokak'}, +{order_by => 'id'}); # SELECT * FROM user WHERE name = 'nekokak' ORDER BY id; のように利用します。 こうすることでnameがnekokakな人をまとめて取得しイテレータ経由でレコードにアクセス出来るようになります。 また、第三引数にオプションを指定でき、ORDER BYなどを指定すことが可能です。 LIMIT / OFFSETを指定したい場合は my $itr = $teng->search('user', +

    #08 search - Articles Advent Calendar 2011 Teng
    barlog
    barlog 2012/01/25
    8 search methods
  • #03 insert / fast_insert - Articles Advent Calendar 2011 Teng

    昨日でTengを利用するのに必要なクラス定義は終了しているので早速 次のステップとして新しいレコードをデータベースに登録する INSERTの方法を紹介します。 insertメソッド SQLのINSERT文を実行するには以下のようにします。 my $row = $teng->insert('user', +{id => 1, name => 'nekokak'}); このようにすると、 INSERT INTO user (id,name) VALUES(1,'nekokak'); というようなSQLが実行され、データベースに新しい行が登録されます。 Tengのinsertメソッドの返り値として、insertしたtableに対応するRowクラスでインスタンス化された Rowオブジェクトがかえってきますので、 $row->id; # 1 $row->name; # nekokak といったように

  • #02 schemaの定義方法 - Articles Advent Calendar 2011 Teng

    Tengを使うにはまずSchemaの定義を行う必要があります。 なお、今回はProj::DBというnamespaceで統一して記述していきます。 コードは特記しない限りSQLiteを前提としています。 以下のようなテーブルがあるとし、 create table user ( id integer, name text, primary key ( id ) ); create table status ( id integer, user_id integer, body text, primary key ( id ) ); コレに対応するTengのSchemaは以下の様に書きます。 package Proj::DB::Schema; use strict; use warnings; use Teng::Schema::Declare; table { name 'user'; pk

    #02 schemaの定義方法 - Articles Advent Calendar 2011 Teng
  • 1