Rose::DB is a Perl DBI wrapper and abstraction layer.
SYNOPSIS
package My::DB;
use Rose::DB;
our @ISA = qw(Rose::DB);
My::DB->register_db(
domain => 'development',
type => 'main',
driver => 'Pg',
database => 'dev_db',
host => 'localhost',
username => 'devuser',
password => 'mysecret',
server_time_zone => 'UTC',
);
My::DB->register_db(
domain => 'production',
type => 'main',
driver => 'Pg',
database => 'big_db',
host => 'dbserver.acme.com',
username => 'dbadmin',
password => 'prodsecret',
server_time_zone => 'UTC',
);
My::DB->default_domain('development');
My::DB->default_type('main');
...
$db = My::DB->new;
my $dbh = $db->dbh or die $db->error;
$db->begin_work or die $db->error;
$dbh->do(...) or die $db->error;
$db->commit or die $db->error;
$db->do_transaction(sub
{
$dbh->do(...);
$sth = $dbh->prepare(...);
$sth->execute(...);
while($sth->fetch) { ... }
$dbh->do(...);
})
or die $db->error;
$dt = $db->parse_timestamp('2001-03-05 12:34:56.123');
$val = $db->format_timestamp($dt);
$dt = $db->parse_datetime('2001-03-05 12:34:56');
$val = $db->format_datetime($dt);
$dt = $db->parse_date('2001-03-05');
$val = $db->format_date($dt);
$bit = $db->parse_bitfield('0x0AF', 32);
$val = $db->format_bitfield($bit);
...
Rose::DB is a wrapper and abstraction layer for DBI-related functionality. A Rose::DB object "has a" DBI object; it is not a subclass of DBI.
Please see the tutorial (perldoc Rose::DB::Tutorial) for an example usage scenario that reflects "best practices" for this module.
Tip: Are you looking for an object-relational mapper (ORM)? If so, please see the Rose::DB::Object module. Rose::DB::Object is an ORM that uses this module to manage its database connections. Rose::DB alone is simply a data source abstraction layer; it is not an ORM.
Product's homepage
Requirements:
· Perl