Author: niallp Date: Tue Aug 4 23:35:52 2009 New Revision: 801021 URL: http://svn.apache.org/viewvc?rev=801021&view=rev Log: BEANUTILS-344 Provide configurable option to use the column label rather than column name
Modified: commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/JDBCDynaClass.java Modified: commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/JDBCDynaClass.java URL: http://svn.apache.org/viewvc/commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/JDBCDynaClass.java?rev=801021&r1=801020&r2=801021&view=diff ============================================================================== --- commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/JDBCDynaClass.java (original) +++ commons/proper/beanutils/trunk/src/java/org/apache/commons/beanutils/JDBCDynaClass.java Tue Aug 4 23:35:52 2009 @@ -47,6 +47,11 @@ protected boolean lowerCase = true; /** + * <p>Flag defining whether column names or labels should be used. + */ + private boolean useColumnLabel; + + /** * <p>The set of dynamic properties that are part of this * {...@link DynaClass}.</p> */ @@ -128,6 +133,15 @@ } /** + * Set whether the column label or name should be used for the property name. + * + * @param useColumnLabel true if the column label should be used, otherwise false + */ + public void setUseColumnLabel(boolean useColumnLabel) { + this.useColumnLabel = useColumnLabel; + } + + /** * <p>Loads and returns the <code>Class</code> of the given name. * By default, a load from the thread context class loader is attempted. * If there is no such class loader, the class loader used to load this @@ -167,7 +181,13 @@ int i) throws SQLException { - String columnName = metadata.getColumnName(i); + String columnName = null; + if (useColumnLabel) { + columnName = metadata.getColumnLabel(i); + } + if (columnName == null || columnName.trim().length() == 0) { + columnName = metadata.getColumnName(i); + } String name = lowerCase ? columnName.toLowerCase() : columnName; if (!name.equals(columnName)) { if (columnNameXref == null) {