gitpan / data-model Goto Github PK
View Code? Open in Web Editor NEWRead-only release history for Data-Model
Home Page: http://metacpan.org/release/Data-Model
License: Other
Read-only release history for Data-Model
Home Page: http://metacpan.org/release/Data-Model
License: Other
NAME Data::Model - model interface which had more data sources unified, a.k.a data/object mapper SYNOPSIS package Your::Model; use base 'Data::Model'; use Data::Model::Schema; use Data::Model::Driver::DBI; my $dbfile = '/foo/bar.db'; my $driver = Data::Model::Driver::DBI->new( dsn => "dbi:SQLite:dbname=$dbfile", ); base_driver( $driver ); install_model user => schema { key 'id'; columns qw/ id name /; }; # create database file unless (-f $dbfile) { my $dbh = DBI->connect($dsn, '', '', { RaiseError => 1, PrintError => 0 }); for my $sql (__PACKAGE__->as_sqls) { $dbh->do( $sql ); } $dbh->disconnect; } # in your script: use Your::Model; my $model = Your::Model->new; # insert my $row = $model->set( user => { id => 1, } ); my $row = $model->lookup( user => 1 ); $row->delete; DESCRIPTION Data::Model is can use as ORM which can be defined briefly. There are few documents. It is due to be increased in the near future. SCHEMA DEFINITION One package can define two or more tables using DSL. see Data::Model::Schema. METHODS new([ \%options ]); my $model = Class->new; lookup($target => $key) my $row = $model->lookup( user => $id ); print $row->name; lookup_multi($target => \@keylist) my @row = $model->lookup_multi( user => [ $id1, $id2 ] ); print $row[0]->name; print $row[1]->name; get($target => $key [, \%options ]) my $iterator = $model->get( user => { id => { IN => [ $id1, $id2 ], } }); while (my $row = $iterator->next) { print $row->name; } # or while (my $row = <$iterator>) { print $row->name; } # or while (<$iterator>) { print $_->name; } set($target => $key, => \%values [, \%options ]) $model->set( user => { id => 3, name => 'insert record', }); if insert to table has auto increment then return $row object with fill in key column by last_insert_id. my $row = $model->set( user => { name => 'insert record', }); say $row->id; # show last_insert_id() delete($target => $key [, \%options ]) $model->delete( user => 3 ); # id = 3 is deleted ROW OBJECT METHODS row object is provided by Data::Model::Row. update my $row = $model->lookup( user => $id ); $row->name('update record'); $row->update; delete my $row = $model->lookup( user => $id ); $row->delete; TRANSACTION see Data::Model::Transaction. DATA DRIVERS DBI see Data::Model::Driver::DBI. DBI::MasterSlave master-slave composition for mysql. see Data::Model::Driver::DBI::MasterSlave. Cache Cash of the result of a query. see Data::Model::Driver::Cache::HASH, see Data::Model::Driver::Cache::Memcached. Memcached memcached is used for data storage. see Data::Model::Driver::Memcached. Queue::Q4M queuing manager for Q4M. see Data::Model::Driver::Queue::Q4M. Memory on memory storage. see Data::Model::Driver::Memory. SEE ALSO Data::Model::Row, Data::Model::Iterator ACKNOWLEDGEMENTS Benjamin Trott more idea given by Data::ObjectDriver AUTHOR Kazuhiro Osawa <yappo <at> shibuya <döt> pl> REPOSITORY git clone git://github.com/yappo/p5-Data-Model.git Data::Model's Git repository is hosted at <http://github.com/yappo/p5-Data-Model>. patches and collaborators are welcome. LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. POD ERRORS Hey! The above document had some coding errors, which are explained below: Around line 754: Non-ASCII character seen before =encoding in '<döt>'. Assuming UTF-8
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.