commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steven Caswell" <>
Subject RE: [DbUtils]Making the BeanHandler... Even Smarter
Date Mon, 01 Dec 2003 02:19:49 GMT
I'm interested in the idea and would like to see the patch and test case.

One slight clarification to proposal 2, I think I'd prefer to overload the
existing method rather than change it, for backward compatibility.

Steven Caswell
Sun Certified Java Programmer
a.k.a Mungo Knotwise of Michel Delving
"One ring to rule them all, one ring to find them..."

> -----Original Message-----
> From: Corby Page [] 
> Sent: Sunday, November 30, 2003 9:01 PM
> To:
> Subject: [DbUtils]Making the BeanHandler... Even Smarter
> I am finding that my DAOs that use the BeanHandler are ending 
> up with a lot of code like this:
> String queryName = "select column1 as beanProp1, column2 as 
> beanProp2, column3 as beanProp3...."
> This gets to be very redundant and clunky for large rows, and 
> it happens because DbUtils assumes that the column name 
> selected from your query will be an exact match for the 
> exposed property of your JavaBean.
> What I would like to do is define a Map once in my DAO:
> Map columnMap = new HashMap();
> columnMap.add( "column1", "beanProp1" );
> columnMap.add( "column2", "beanProp2" );
> ...
> and then I would like a way to tell DbUtils to override the 
> default name mappings of columns to properties by using the 
> map I supply.
> I have two proposals for how I can accomplish this:
> 1) I can create an additional constructor for 
> BasicRowProcessor that takes a nameMap as input. Then I would 
> change the mapColumnsToProperties() method to check for the 
> existence of such a map when performing the name mapping.
> 2) Looking at proposal 1, it occurs to me that 
> mapColumnsToProperties is really more of a ColumnProcessor 
> thing than a RowProcessor thing. I could refactor so that the 
> BasicRowProcessor delegates to its ColumnProcessor to provide 
> the mapColumnsToProperties functionality. Now, the nameMap 
> would be passed into the BasicColumnProcessor class. Also, I 
> would have to change the method signature for the 
> ColumnProcessor interface so that the process method takes a 
> colunm name rather than an index number for its second argument.
> If folks are agreeable to either of these two proposals, I am 
> willing to submit patch and testcase.
> Thanks,
> Corby
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message