As part of my DBIx::SQLEngine distribution, I've put together a brief document that lists some of the other DBI wrapper modules and highlights a few broad categories of features. I was aiming for something broader and more shallow than the Poop Group comparison, reviewing more modules but going into less depth.

I've tried to populate this list with modules I've seen others discuss, as well as some I just found on CPAN, but for the many modules I haven't used, I've simply based my evaluation on a few minutes reading the documentation.

Could those of my fellow monks who use one of these modules take a moment to check whether I've classified it appropriately, or let me know if I've omitted something useful in this DBI wrapper/assistant arena?

I examined each module to see if it had the following features:
DBI Wrapper: Does the module maintain a connection to DBI handle?
One Call Query: Does it provide combined prepare/fetch/finish methods?
Data-driven SQL: Does it generate SQL queries from DWIM-ish data structures?
Schema Access: Does it detect or create tables and other structures?
Named Configs: Does it handle a library of named queries or connection parameters?
Portability: Does it provide a consistent interface that hides idiomatic DBMS implementations?
Object Mapping: Does it provide classes to treat rows of data as objects?

I know that just counting tick marks doesn't tell you which module is better, but I found it helpful to see which modules had related functionality; for example, I think I had previously overlooked DBIx::SearchProfiles because I didn't realize what it did.

Package DBI Wrapper One Call Data SQL Named Config Schema Access DBMS Portability Object Mapping
 
DBIx::Abstract Y Y Y - - - -
DBIx::AbstractLite Y - Y - - - -
DBIx::Broker Y Y Y - - - -
DBIx::Browse Y Y Y - - - -
DBIx::DWIW Y Y - - - Y/- -
DBIx::Easy Y Y Y - - Y/- -
DBIx::Schema Y Y Y - - - -
DBIx::Simple Y Y - - - - -
DBIx::Wrap Y Y Y - - - -
DBIx::YAWM Y Y Y - - - -
MySQL::Easy Y Y - - - - -
SQL::AnyDBD Y - Y - - Y -
Sql::Simple Y Y Y - - - -
 
DBIx::Librarian Y - - Y - - -
DBIx::PhraseBook Y Y Y Y/- - - -
DBIx::SearchProfiles Y Y Y Y - - -
SQL::Catalog Y - - Y - - -
 
Class::Phrasebook::SQL - - - Y - - -
SQL::Abstract - - Y - - - -
SQL::Generator - - Y Y - -
SQL::Library - - - Y - ? -
 
DBIx::Admin::TableInfo Y - - - Y - -
DBIx::DataSource - - - - Y Y -
DBIx::SystemCatalog Y - - - Y Y -
 
Alzabo Y Y Y -? Y Y Y
Class::DBI Y Y Y Y? ? Y Y
DBIx::RecordSet Y ? Y -? Y Y Y
DBIx::SearchBuilder Y Y Y - - Y Y?
MKDoc::SQL Y Y Y -? ? Y/- Y
Rosetta Y? -? Y? -? Y? Y? Y?
SPOPS Y Y Y - Y Y Y
Tangram Y Y Y - Y? Y Y
 
DBIx::SQLEngine Y Y Y Y Y Y Y
DBI Wrapper One Call Data SQL Named Config Schema Access DBMS Portability Object Mapping

I typically didn't evaluate whether or not the implementation looked like it was high-kwalitee or not, but I would be interested in feedback on this aspect as well.


In reply to DBI Wrapper Feature Comparison by simonm

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.