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.
search
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'})->count;
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.
reconnect
re connect database handle.
BUGS AND LIMITATIONS
No bugs have been reported.
AUTHOR
Atsushi Kobayashi <nekokak __at__ gmail.com>
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 679:
Unknown directive: =head