DB ORM

Robert Clipsham robert at octarineparrot.com
Tue Aug 9 12:15:42 PDT 2011


On 09/08/2011 08:30, Jonas Drewsen wrote:
> Just stumbled upon this db orm for c++ that uses the gcc frontend to
> rewrite c++ code to make classes suitable for database access.
>
> http://www.codesynthesis.com/products/odb/
>
> They are using pragmas to accomplish this. I guess an equally good
> implementation in D would use custom attributes for this once (if) they
> are supported.
>
> /Jonas

How ugly! My (far from complete, but good enough to demonstrate what D 
can do) ORM is far simpler than that:

https://github.com/mrmonday/serenity (actually a web framework, includes 
an incomplete ORM)

----
struct Post
{
    ulong id;
    DateTime dt;
    string title;
    string content;
}
Persister!Post posts;

// Append a post
posts ~= Post(0, someDateTime, "A title", "Some content");

foreach (post; posts[0..5])
{
    // Iterate over the first 5 posts
}
post[3] = posts[2];
----

All SQL is generated at compile time, and the backend database is called 
directly - that's less overhead than you'd get from a typical scripting 
language accessing a database directly (no need to convert between types 
first).

-- 
Robert
http://octarineparrot.com/


More information about the Digitalmars-d mailing list