db-commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian McCallister <mccallis...@forthillcompany.com>
Subject Re: new project question
Date Sun, 08 Feb 2004 20:50:42 GMT
Woo hoo, I was trying to find your email to download and look at it but 
couldn't. Much appreciate the prodding!


On Feb 8, 2004, at 2:38 PM, Oliver Heger wrote:

> Hi,
> did anyone had a look at that code? I would really appreciate some 
> comments.
> Thanks.
> Oliver
> Oliver Heger wrote:
>> Brian,
>> sorry for the delay. You can now find the actual code at the 
>> following URL:
>>    http://www.oliver-heger.privat.t-online.de/retrieve.zip
>> Some short words for explanation:
>> Heart of the library is the Query class in the parts sub package. 
>> Together with the other part classes it can be used to construct 
>> SELECT statements. Some important parts are still missing, e.g. for 
>> ORDER BY clauses or for generating lists for the IN operator.
>> In the retrieve package there are some classes and interfaces that 
>> represent database structures. They have two purposes:
>> 1. They are used for the mapping facilities. It is possible to 
>> address tables and columns with logic names, which are then 
>> transformed into real database names.
>> 2. They provide information for automatic generation of join 
>> conditions. One use case for this library was a highly configurable 
>> application that allows its user to choose the fields of a table and 
>> its related tables that should be displayed. For instance imagine an 
>> application that reads a tasks table for displaying a todo list. It 
>> allows its users to define the view of their tasks. If a user only 
>> wants to see fields that are contained in the tasks table, the 
>> resulting SELECT statement will be quite simple. If he or she is also 
>> interested in the name and some other attributes of the user who has 
>> created the task, the user table has to be joined. The library is 
>> designed that it can automatically detect the involved tables and 
>> fetch the necessary information about the relations between them 
>> through the RelationProvider interface. With this information it can 
>> dynamically create a statement with a join if necessary; the calling 
>> application need not bother about that.
>> Of course a couple of unit tests must be added, though the test for 
>> Query also tests many other classes. Now I am looking forward to your 
>> comments!
>> Oliver

View raw message