[Tutor] Class in a class
Kent Johnson
kent37 at tds.net
Fri Feb 18 12:05:39 CET 2005
Liam Clarke wrote:
> Hi Kent,
>
>
>>So the layering is
>
>
>>GUI - user interaction
>>Application functionality
>>CbDao - application-specific database access
>>DbAccess - generic database access, easy to use
>>JDBC connection - raw database access, not so easy to use
>
>
> This sounds a lot like what I'm aiming for in a project, the layers &
> objects passed up and down, are you able to provide an example of your
> CbDao class for my learning edification?
>
> (btw, is it Dao as in Lao Tzu?)
The Way that can be known is not the true way. Which makes it hard to provide examples. :-)
Actually DAO stands for Data Access Object which a common pattern for database access, and Lao Tzu's
version is usually spelled Tao. Though I do appreciate the pun.
http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
My CbDao is work code so I can't just post it. It's actually pretty long and ugly too. But the idea
of it is simple - it includes all of the SQL code of the main application and exposes it as
application-specific methods. For example my app has a Category object that gets linked into a tree
and is saved to the database. CbDao has methods like
def saveCategory(self, category):
def saveCategoryAsChild(self, category, parent):
def moveCategory(self, catToMove, newParent, pos):
def deleteCategory(self, cat):
def findOneCategory(self, uniqueGroupId, treeId):
The higher levels of the application don't have to worry about the implementation of these methods
in terms of database operations.
Kent
More information about the Tutor
mailing list