Stefan Rufer wrote:
On Wed, 25 Jan 2006, Chetan wrote:

Earlier in my code, whenever i was doing a resultSet.getString('some column name'), the return value would be an empty string ('') in case the column in the database was null. However, after using DBCP, similar statements return


The JDBC specification (e.g. JDBC 3.0, Chapter 14.2.3.3) states that for database rows that contain NULL: "Column values that map to Java Object types are returned as a Java null;"

Your implementation does not follow the JDBC specification, therefore it's not possible to change the implementation easily.

Is there any way by which i could make the DBCP connection broker return an
empty string instead of a null so that i dont need to make changes in
numerous places in my application to handle the null pointer case ?


I strongly recommend you to follow the JDBC specification (better change your implementation now than later). This will make it possible to exchange the implementation as you like.

Be VERY careful here; some databases (blech) for character
data treat "empty string" and null interchangeably
(i.e. use one as a proxy for the other)

From some testing at our company:

    *  HSQLDB behaves as you would hope, it's a string with no characters in.
    * Oracle treats a zero length string as if it were NULL, i.e. it cannot be 
inserted into a row that does not allow nulls, testing for equality will fail, 
even against a column where a zero length string was inserted. Retrieving a 
zero length string from the database returns a null string.
* Sybase replaces a zero length string with a space character. Testing external to the database against a zero length string will fail, because a zero length string is not the same as a space character. Testing internally will succeed, because both sides of the expression will be converted into space characters. Internally testing against a space would also succeed however which is wrong.


What you're seeing may not be a JDBC/DBCP issue.

  BugBear

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to