NAME

DBIx::Skinny - simple DBI wrapper/ORMapper

SYNOPSIS

package Your::Model;
use DBIx::Skinny setup => {
    dsn => 'dbi:SQLite:',
    username => '',
    password => '',
};
1;

package Your::Model::Schema;
use DBIx::Skinny::Schema;

install_table user => schema {
    pk 'id';
    columns qw/
        id
        name
    /;
};
1;

# in your script:
use Your::Model;

# insert    
my $row = Your::Model->insert('user',
    {
        id   => 1,
    }
);
$row->update({name => 'nekokak'});

$row = Your::Model->search_by_sql(q{SELECT id, name FROM user WHERE id = ?},1);
$row->delete('user')

DESCRIPTION

DBIx::Skinny is simple DBI wrapper and simple O/R Mapper.

METHOD

insert

insert record

my $row = Your::Model->insert('user',{
    id   => 1,
    name => 'nekokak',
});

bulk_insert

insert many record

Your::Model->bulk_insert('user',[
    {
        id   => 1,
        name => 'nekokak',
    },
    {
        id   => 2,
        name => 'yappo',
    },
    {
        id   => 3,
        name => 'walf443',
    },
]);

create

insert method alias.

update

update record

Your::Model->update('user',{
    name => 'nomaneko',
},{ id => 1 });

delete

delete record

Your::Model->delete('user',{
    id => 1,
});

find_or_create

create record if not exsists record

my $row = Your::Model->find_or_create('usr',{
    id   => 1,
    name => 'nekokak',
});

find_or_insert

find_or_create method alias.

simple search method.

get iterator:

my $itr = Your::Model->search('user',{id => 1},{order_by => 'id'});

get rows:

my @rows = Your::Model->search('user',{id => 1},{order_by => 'id'});

single

get one record

my $row = Your::Model->single('user',{id =>1});

resultset

result set case:

my $rs = Your::Model->resultset(
    select => [qw/id name/],
    from   => [qw/user/],
);
$rs->add_where('name' => {op => 'like', value => "%neko%"});
$rs->limit(10);
$rs->offset(10);
$rs->order({ column => 'id', desc => 'DESC' });
my $itr = $rs->retrieve;

count

get simple count

my $cnt = Your::Model->count('user',{count => 'id'});

search_named

execute named query

my $itr = Your::Model->search_named(q{SELECT * FROM user WHERE id = :id}, {id => 1});

search_by_sql

execute your SQL

my $itr = Your::Model->search_by_sql(q{
    SELECT
        id, name
    FROM
        user
    WHERE
        id = ?
},1);

txn_scope

get transaction scope object.

do {
    my $txn = Your::Model->txn_scope;
    # some process
    $txn->commit;
}

data2itr

my $itr = Your::Model->data2itr('user',[
    {
        id   => 1,
        name => 'nekokak',
    },
    {
        id   => 2,
        name => 'yappo',
    },
    {
        id   => 3,
        name => 'walf43',
    },
]);

my $row = $itr->first;
$row->insert; # inser data.
my $row = Your::Model->find_or_new('user',{name => 'nekokak'});

do

execute your query.

dbh

get database handle.

connect

connect database handle.

reconnect

re connect database handle.

BUGS AND LIMITATIONS

No bugs have been reported.

AUTHOR

Atsushi Kobayashi <nekokak __at__ gmail.com>

CONTRIBUTORS

walf443 : Keiji Yoshimi

TBONE : Terrence Brannon

nekoya : Ryo Miyake

REPOSITORY

git clone git://github.com/nekokak/p5-dbix-skinny.git  

LICENCE AND COPYRIGHT

Copyright (c) 2009, Atsushi Kobayashi <nekokak __at__ gmail.com>. All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 731:

Unknown directive: =head