[jira] [Commented] (CONFIGURATION-533) Can DatabaseConfiguration turn CLOB values into a Strings before returning from getProperty(String)?

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (CONFIGURATION-533) Can DatabaseConfiguration turn CLOB values into a Strings before returning from getProperty(String)?

AD_LB (Jira)

    [ https://issues.apache.org/jira/browse/CONFIGURATION-533?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13627013#comment-13627013 ]

Oliver Heger commented on CONFIGURATION-533:
--------------------------------------------

A fix was committed in revision 1466200. There is now a new protected method {{extractPropertyValue()}} which is called by {{getProperty()}} to read the property value from the result set. Here the CLOB conversion is done.

I only added a unit test based on mock objects. Can you verify whether this approach works with real database objects?
               

> Can DatabaseConfiguration turn CLOB values into a Strings before returning from getProperty(String)?
> ----------------------------------------------------------------------------------------------------
>
>                 Key: CONFIGURATION-533
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-533
>             Project: Commons Configuration
>          Issue Type: Improvement
>          Components: Type conversion
>    Affects Versions: 1.9
>         Environment: Oracle 11gR2 database and JDBC driver
>            Reporter: Chris Seieroe
>            Assignee: Oliver Heger
>            Priority: Minor
>
> The table I'm using for DatabaseConfiguration stores the value in a CLOB column. When the getProperty(String) method searches the table to get the values, the Oracle JDBC driver is returning them back as oracle.sql.CLOB instances.
> I also use Microsoft SQL Server and its latest JDBC drivers on a similar table where the value is in a TEXT column. I know, I need to switch the column type since it's being deprecated, but that's what it is for now. Anyways, when I get a value from that table, it returns back a String instances.
> I'm not asking us to support the Oracle-specific class, but perhaps we can add some support for the java.sql.Clob interface. Can we modify the getProperty(String) method to turn those into Strings? When they're java.sql.Clob instances, I cannot use all the nice methods that do type conversion since they don't know what to do with a java.sql.Clob instance.
> Here is a code sample that might be helpful:
> private String convertClob(Clob clobValue) {
>     String strValue = null;
>     try {
>         int length = (int) clobValue.length();
>         if (length > 0) {
>             strValue = clobValue.getSubString(1, length);
>         } else {
>             strValue = "";
>         }
>     } catch (SQLException e) {
>         throw new ConversionException(e);
>     }
>     return strValue;
> }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira