db-commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oliver.He...@t-online.de (Oliver Heger)
Subject Re: new project question
Date Thu, 22 Jan 2004 20:25:00 GMT
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

Brian McCallister wrote:

> For posting code, put it on a web server and post a link. Let me know 
> if you need somewhere to put it temporarily and I can provide a spot.
>
> -Brian




Mime
View raw message