NAME
DBIx::ObjectMapper - An implementation of the Data Mapper pattern (object-relational mapper).
SYNOPSIS
Create a engine and a mapper object.
use
DBIx::ObjectMapper;
my
$engine
= DBIx::ObjectMapper::Engine::DBI->new({
dsn
=>
'dbi:SQLite:'
,
username
=>
undef
,
password
=>
undef
,
});
my
$mapper
= DBIx::ObjectMapper->new(
engine
=>
$engine
);
Create a ordinary perl class.
Get/Define metadata of the table.
my
$user_meta
=
$mapper
->metadata->table(
'user'
=>
'autoload'
);
# or
my
$user_meta
=
$mapper
->metadata->table(
'user'
=> [
Col(
id
=> Int(), PrimaryKey ),
Col(
name
=> String(128), NotNull ),
]
);
Map the table metadata to the ordinary class.
$mapper
->maps(
$user_meta
=>
'My::User'
);
Create session. And add My::User object to session object.
my
$session
=
$mapper
->begin_session;
my
$user
= My::User->new({
id
=> 1,
name
=>
'name1'
});
$session
->add(
$user
);
When the $session is destroyed, the session object send a insert query to the database.
Get a My::User Object.
my
$session
=
$mapper
->begin_session;
my
$user
=
$session
->get(
'My::User'
=> 1 );
$user
->id;
$user
->name;
DESCRIPTION
DBIx::ObjectMapper is a implementation of the Data Mapper pattern. And abstraction layer for database access.
Concepts and interfaces of this module borrowed from SQLAlchemy. http://www.sqlalchemy.org/
METHODS
new(%args)
- engine
- metadata
-
By default DBIx::ObjectMapper::Metadata. Set a DBIx::ObjectMapper::Metadata based object if you want.
- mapping_class
-
By default DBIx::ObjectMapper::Mapper. Set a DBIx::ObjectMapper::Mapper based object if you want.
- session_class
-
By default DBIx::ObjectMapper::Session. Set a DBIx::ObjectMapper::Session based class if you want.
- session_attr
-
Set a hash reference of counstructor parameters of DBIx::ObjectMapper::Session. When you call the begin_session method, you get a DBIx::ObjectMapper::Session object that this option is set up.
begin_session(%session_option)
Gets a session object instance, and begins session. See the DBIx::ObjectMapper::Session for more information.
maps(%map_config)
Sets a configuration of mapping. See the DBIx::ObjectMapper::Mapper for more information.
relation( $relation_type => \%relation_config )
metadata()
Returns the metadata object.
engine()
Returns the engine object.
mapping_class()
Returns the mapping_class.
session_class()
Returns the session_class.
AUTHOR
Eisuke Oishi
CONTRIBUTORS
nekokak: Atsushi Kobayashi
COPYRIGHT
Copyright 2010 Eisuke Oishi
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.