[
https://issues.apache.org/jira/browse/DBUTILS-91?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13407882#comment-13407882
]
Stevo Slavic commented on DBUTILS-91:
-------------------------------------
Here is sample code that I currently (commons-dbutils:commons-dbutils:1.4:jar)
have to use to override column to property name mapping:
{code}
final Map<String, String> columnToPropertyOverrides = new HashMap<>();
columnToPropertyOverrides.put("foo", "bar");
ResultSetHandler<List<Acme>> rsh = new BeanListHandler<Acme>(Acme.class, new
BasicRowProcessor(new BeanProcessor() {
@Override
protected int[] mapColumnsToProperties(ResultSetMetaData rsmd,
PropertyDescriptor[] props) throws SQLException {
int cols = rsmd.getColumnCount();
int[] columnToProperty = new int[cols + 1];
Arrays.fill(columnToProperty, PROPERTY_NOT_FOUND);
for (int col = 1; col <= cols; col++) {
String columnName = rsmd.getColumnLabel(col);
if (null == columnName || 0 == columnName.length()) {
columnName = rsmd.getColumnName(col);
}
for (int i = 0; i < props.length; i++) {
String propertyName =
columnToPropertyOverrides.get(columnName);
if (propertyName == null) {
propertyName = columnName;
}
if
(propertyName.equalsIgnoreCase(props[i].getName())) {
columnToProperty[col] = i;
break;
}
}
}
return columnToProperty;
}
}));
{code}
> Enhance BasicRowProcessor to have row mapping easier to configure
> -----------------------------------------------------------------
>
> Key: DBUTILS-91
> URL: https://issues.apache.org/jira/browse/DBUTILS-91
> Project: Commons DbUtils
> Issue Type: Improvement
> Affects Versions: 1.4
> Reporter: Stevo Slavic
>
> {{BasicRowProcessor}} by default makes use of {{BeanProcessor}} for mapping
> result set row columns to bean property names. {{BeanProcessor}} uses bean
> property names, and performs case-insensitive matching of those names to
> column names.
> Currently {{BasicRowProcessor}} can be configured with custom
> {{BeanProcessor}} extension to customize the row mapping, but it gets rather
> ugly.
> It would be great if {{BeanProcessor}} was configurable with column name to
> bean property name strategy. Besides current strategy, DbUtils should also
> bundle strategy implementation configurable with a property name to column
> name (or other way around) map.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira