Class::DBIClass::DBI is a simple database abstraction module. | |
Download |
Class::DBI Ranking & Summary
Advertisement
- License:
- Perl Artistic License
- Price:
- FREE
- Publisher Name:
- Michael G Schwern
- Publisher web site:
- http://search.cpan.org/~rosch/
Class::DBI Tags
Class::DBI Description
Class::DBI is a simple database abstraction module. Class::DBI is a simple database abstraction module.SYNOPSIS package Music::DBI; use base 'Class::DBI'; Music::DBI->connection('dbi:mysql:dbname', 'username', 'password'); package Music::Artist; use base 'Music::DBI'; Music::Artist->table('artist'); Music::Artist->columns(All => qw/artistid name/); Music::Artist->has_many(cds => 'Music::CD'); package Music::CD; use base 'Music::DBI'; Music::CD->table('cd'); Music::CD->columns(All => qw/cdid artist title year reldate/); Music::CD->has_many(tracks => 'Music::Track'); Music::CD->has_a(artist => 'Music::Artist'); Music::CD->has_a(reldate => 'Time::Piece', inflate => sub { Time::Piece->strptime(shift, "%Y-%m-%d") }, deflate => 'ymd', ); Music::CD->might_have(liner_notes => LinerNotes => qw/notes/); package Music::Track; use base 'Music::DBI'; Music::Track->table('track'); Music::Track->columns(All => qw/trackid cd position title/); #-- Meanwhile, in a nearby piece of code! --# my $artist = Music::Artist->insert({ artistid => 1, name => 'U2' }); my $cd = $artist->add_to_cds({ cdid => 1, title => 'October', year => 1980, }); # Oops, got it wrong. $cd->year(1981); $cd->update; # etc. foreach my $track ($cd->tracks) { print $track->position, $track->title } $cd->delete; # also deletes the tracks my $cd = Music::CD->retrieve(1); my @cds = Music::CD->retrieve_all; my @cds = Music::CD->search(year => 1980); my @cds = Music::CD->search_like(title => 'October%'); Requirements: · Perl
Class::DBI Related Software