create table person ( name varchar(15), attr1 varchar(15), attr2 varchar(1), attr3 char(1), attr4 int )
如何通过采用上面的简单表并将其映射到Perl对象,在Perl中使用基本ORM?接下来,我想使用一些标准系统Perl像语法一样执行基本操作,例如选择结果。例如:
@myResults = findAll(attr1 == 3 && attr2 =~ /abc/);
答案 0 :(得分:26)
规则#1,不要自己编写。
CPAN上有很多ORM,包括......
答案 1 :(得分:0)
(Chiming late)Data :: ObjectDriver(也在CPAN上)提供了很大的灵活性,特别是如果分区和缓存在您的需求列表中。
答案 2 :(得分:0)
我建议使用DBIx :: Class。这里有一些代码来反省50个表遗留数据库(在模式中指定了关系):
#!/usr/bin/perl
use warnings;
use strict;
use DBIx::Class::Schema::Loader qw/ make_schema_at /;
make_schema_at("Zotero::Schema",
{
# components => ['InflateColumn::DateTime'],
debug => 1,
relationships => 1,
dump_directory => './lib' ,
},
["dbi:SQLite:dbname=../zotero.sqlite", "",""]);