- ALPHA VERSION
- SEE ALSO
Storm - Object-relational mapping
package Foo; use Storm::Builder; __PACKAGE__->meta->table('Foo'); has 'id' => ( is => 'rw', traits => [qw( PrimaryKey AutoIncrement )] ); has 'label' => ( is => 'rw' ); # and then .... package main; use Storm; # connect to a database $storm = Storm->new( source => ['DBI:SQLite:dbname=:memory:'] ); $o = Foo->new( label => 'Storm Enabled Object' ); # store object $storm->insert( $o ); # update object $o->label( 'Updated Object' ); $storm->update( $o ); # sync object with database $storm->refresh( $o ); # lookup object in database $o = $storm->lookup( 'Foo', 1 ); # search for objects in database $query = $storm->select( 'Foo' ); $query->where( '.label', '=', 'Updated Object' ) $iter = $query->results; @results = $iter->all; # delete objects $storm->delete( $o );
*THIS IS NEW SOFTWARE. IT IS STILL IN DEVELOPMENT. THE API MAY CHANGE IN FUTURE VERSIONS WITH NO NOTICE.*
A Storm::Aeolus object for installing/uninstalling database tables.
A Storm::LiveObjects object for tracking the set of live objects. Creates scope objects to help ensure that objects are not garbage collected. This is used internally and you typically shouldn't need to access it yourself. It is documented here for completeness.
The policy determines how types are defined in the database and can be used to customize how types are inflated/deflated. See Storm::Policy for more details.
The Storm::Source object responsible for spawning active database handles. A Storm::Source object will be coerced from a ArrayRef or Hashref.
- delete @objects
Deletes the objects from the database.
- delete_query $class
Returns a Storm::Query::Delete instance for deleting objects of type $class from the database.
- do_transaction \&func
Creates and commits a Storm::Transaction. The \&func will be called within the transaction.
- insert @objects
Insert objects into the database.
- insert_query $class
Returns a Storm::Query::Insert instance for inserting objects of type $class into the database.
- lookup $class, @ids
Retrieve objects from the database.
- lookup_query $class
Returns a Storm::Query::Lookup instance for retrieving objects of type $class from the database.
- new_transaction \&func
Returns a new transaction. \&func is the code to be called within the transaction.
- refresh @objects
Update the @objects with data from the database.
- refresh_query $class
Returns a Storm::Query::Refresh instance for refresh objects of type $class.
- select $class, @objects
select_query. Provided for consistency.
- select_query $class
Returns a Storm::Query::Select instance for selecting objects from the database.
- update @objects
Update the @objects in the database.
Returns a Storm::Query::Select instance for updating objects in the database.
Storm has only been tested using MySQL and SQLite.
Please report bugs by going to http://blue-aeolus.com/storm/
Jeffrey Ray Hallock <jeffrey.hallock at gmail dot com>
Special thanks to Yuval Kogman and Dave Rolsky, for who without their talented work and inspiration this library would not be possible.
Copyright (c) 2010 Jeffrey Ray Hallock. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.