Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: A brief survey of the DBI usability layer modules on the CPAN

by tphyahoo (Vicar)
on Nov 14, 2005 at 08:23 UTC ( [id://508238]=note: print w/replies, xml ) Need Help??


in reply to A brief survey of the DBI usability layer modules on the CPAN

Can anyone commont on DBIx::Class? I'm asking because this is one of the two main models supported by perl's shiny new web framework, Catalyst. (At least, it's featured as one of two on the Wiki.)

Since Class::DBI, which is the basis of the other supported Catalyst model CDBI::Crud, got a lot of flack on this thread, I'm looking to get opinions on

1) if you get most of the sweetness of DBIx::Simple with DBIx::Class

2) Is DBIx:Class stable enough to use in your Catalyst dev (it's listed as experimental)

If DBIx::Class is judged too immature, how much sacrifice would it be to use DBIx::Simple in your catalyst apps instead of DBIx::Class.

  • Comment on Re: A brief survey of the DBI usability layer modules on the CPAN

Replies are listed 'Best First'.
Re^2: A brief survey of the DBI usability layer modules on the CPAN
by Aristotle (Chancellor) on Nov 14, 2005 at 09:25 UTC

    DBIx::Class and Class::DBI are the same kind of thing – ORMs that layer an OO abstraction over the database. They try to create a model for you with minimal effort on your side, but in so doing they keep very close to the structure of the database, and yet make it difficult to formulate non-trivial queries.

    I prefer to write my model from scratch, talking SQL to the database directly. DBIx::Simple does not add any abstractions over using DBI directly – it just puts a cleaner interface on top of it, so you get to keep your sanity.

    Makeshifts last the longest.

      DBIx::Simple does not add any abstractions over using DBI directly

      Actually, it does. Instead of working with statement handles, they have been abstracted away and wrapped in result set objects. There are some fundamental (subtle but very natural) differences: you wouldn't re-execute a result set, for example. It does stick to DBI's iterative approach to fetching, even though many would expect to be able to re-use a result set object and get the same data from it twice. This has not been abstracted, because it would harm performance immensely, especially with databases that don't support rewinding cursors natively.

      Juerd # { site => 'juerd.nl', do_not_use => 'spamtrap', perl6_server => 'feather' }

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://508238]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (4)
As of 2024-04-24 00:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found