commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steven Caswell" <st...@mungoknotwise.com>
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
steve@mungoknotwise.com
a.k.a Mungo Knotwise of Michel Delving
"One ring to rule them all, one ring to find them..."


> -----Original Message-----
> From: Corby Page [mailto:CPage1@duke-energy.com] 
> Sent: Sunday, November 30, 2003 9:01 PM
> To: commons-dev@jakarta.apache.org
> 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: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
> 
> 
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message