NAME

Class::DBI::Lite - Lightweight ORM for Perl

SYNOPSIS

Create some database tables:

create table artists (
  artist_id integer primary key autoincrement,
  artist_name varchar(100) not null
);

create table cds (
  cd_id integer primary key autoincrement,
  artist_id integer not null,
  cd_name varchar(100) not null
);


package My::Model;

use base 'Class::DBI::Lite::mysql'; # Or ::SQLite, etc

__PACKAGE__->connection( 'DBI:mysql:dbname:localhost', 'user', 'pass' );

1;# return true:


package My::Artist;

use base 'My::Model';

__PACKAGE__->set_up_table('artists');

__PACKAGE__->has_many(
  cds =>
    'My::CD' =>
      'artist_id'
);

1;# return true:


package My::CD;

use base 'My::Model';

__PACKAGE__->set_up_table('cds');

__PACKAGE__->has_a(
  artist =>
    'My::Artist' =>
      'artist_id'
);

1;# return true:

Then, in your script someplace:

use My::Artist;

my $artist = My::Artist->retrieve( 123 );

foreach my $cd ( $artist->cds )
{
  ...
}# end foreach()

my $cd = $artist->add_to_cds( cd_name => "Attak" );

print $cd->cd_name;
$cd->cd_name("New Name");
$cd->update();

# Delete the artist and all of its CDs:
$artist->delete;

DESCRIPTION

Sometimes Class::DBI is too crufty, and DBIx::Class is too much.

Enter Class::DBI::Lite.

TODO

  • Complete tests

  • Examples

  • Documentation

AUTHOR

Copyright John Drago <jdrago_999@yahoo.com>. All rights reserved.

LICENSE

This software is Free software and may be used and redistributed under the same terms as perl itself.