H1 2015 - db access support in Phobos

AndyC via Digitalmars-d digitalmars-d at puremagic.com
Mon Feb 2 10:00:27 PST 2015


On Monday, 2 February 2015 at 04:00:31 UTC, Vadim Lopatin wrote:
> I would like to propose Java way for implementation of DB 
> access (JDBC - Java DataBase Connectors).
>
> Standard library must contain only
> * set of interfaces for uniform DB access
>     * Connection - can create Statement or PreparedStatement, 
> control transactions
>     * Statement - can run update or query
>     * PreparedStatement - same as Statement, but with parameters
>     * ResultSet - DB query result row access
>     * DataSource - can create connections, w/o parameters
>     * Driver - interface which implements connection factory 
> for particular DB types
>     * Some useful classes like ConnectionPool
> * factory method to create connection by URL and parameter set
> * some method to register DB driver for factory - e.g. when 
> called from driver's module __gshared static this()
>
> Drivers may be placed in separate packages in standard library 
> or in some DUB packages.
>
> Look at https://github.com/buggins/ddbc
> Currently it contains drivers for sqlite, MySQL and PostgreSQL.
>
>
> If Andrey/Walter wish, I can prepare pool request based on code 
> from ddbc.
>
> Best regards,
>      Vadim


-1 on copy Java.  It seems over complicated.

We need a base Database Class, then derive PostgresDatabase from 
that.  No need for Driver class.  PostgresDatabase class contains 
all the knowledge to connect to the actual database so what's 
left for Driver?

If we have Database class, why do we need Connection or 
DataSource?  They don't offer anything Database shouldn't already 
have.

Database (and children), ResultSet and Statement are all that's 
needed.  Statement can have a prepare() function.  No need to 
make an entire PreparedStatement class, seems overkill.

I pray we never ever have factories.  I like verbs, they make 
sense.

-Andy


More information about the Digitalmars-d mailing list