DBIx::Skinny - simple DBI wrapper/ORMapper
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')
DBIx::Skinny is simple DBI wrapper and simple O/R Mapper.
create your skinny instance.
It is possible to use it even by the class method.
insert record
my $row = Your::Model->insert('user',{ id => 1, name => 'nekokak', });
insert many record
Your::Model->bulk_insert('user',[ { id => 1, name => 'nekokak', }, { id => 2, name => 'yappo', }, { id => 3, name => 'walf443', }, ]);
insert method alias.
update record
Your::Model->update('user',{ name => 'nomaneko', },{ id => 1 });
delete record
Your::Model->delete('user',{ id => 1, });
create record if not exsists record
my $row = Your::Model->find_or_create('usr',{ id => 1, name => 'nekokak', });
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'});
get one record
my $row = Your::Model->single('user',{id =>1});
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;
get simple count
my $cnt = Your::Model->count('user', 'id');
execute named query
my $itr = Your::Model->search_named(q{SELECT * FROM user WHERE id = :id}, {id => 1});
execute your SQL
my $itr = Your::Model->search_by_sql(q{ SELECT id, name FROM user WHERE id = ? },[ 1 ]);
get transaction scope object.
do { my $txn = Your::Model->txn_scope; # some process $txn->commit; }
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'});
execute your query.
get database handle.
connect database handle.
re connect database handle.
No bugs have been reported.
Atsushi Kobayashi <nekokak __at__ gmail.com>
<nekokak __at__ gmail.com>
walf443 : Keiji Yoshimi
TBONE : Terrence Brannon
nekoya : Ryo Miyake
oinume: Kazuhiro Oinuma
fujiwara: Shunichiro Fujiwara
git clone git://github.com/nekokak/p5-dbix-skinny.git
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.
To install DBIx::Skinny, copy and paste the appropriate command in to your terminal.
cpanm
cpanm DBIx::Skinny
CPAN shell
perl -MCPAN -e shell install DBIx::Skinny
For more information on module installation, please visit the detailed CPAN module installation guide.