You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by "Anderson, James H [IT]" <ja...@citigroup.com> on 2004/04/21 14:23:18 UTC

[DBUtils] SqlNullCheckedResultSet not replacing nulls

In the following code snippet, SqlNullCheckedResultSet is not replacing nulls, neither for String nor Date results.

Anyone have an idea what's wrong?

Thanks,

jim

        [...]

        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            conn = DriverManager.getConnection(url, user, pswd);
 
            MapListHandler mlh = new MapListHandler() {
                    public Object handle (ResultSet rs) {
                        SqlNullCheckedResultSet wrapper = new SqlNullCheckedResultSet(rs);
                        wrapper.setNullString("--n/a--");
                        wrapper.setNullDate(today);
                        rs = ProxyFactory.instance().createResultSet(wrapper);
                        Object returnVal = null;
                        try {
                            System.out.println("*** HERE ***");
                            returnVal = super.handle(rs);
                        } catch (Exception e) {
                            System.out.println(e.getMessage());
                        }
                        return returnVal;
                    }
                };

            QueryRunner run = new QueryRunner();
            List result = (List) run.query(conn, query, mlh);
            Iterator it1 = result.iterator();
            while (it1.hasNext()) {
                Map map = (Map) it1.next();
                Set keys = map.keySet();
                Iterator it = keys.iterator();
                while (it.hasNext()) {
                    String key = (String) it.next();
                    System.out.println(key + ": " + map.get(key));
                }
                System.out.println();
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
        } finally {
            org.apache.commons.dbutils.DbUtils.commitAndCloseQuietly(conn);
        }
    }

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


Re: [DBUtils] SqlNullCheckedResultSet not replacing nulls

Posted by David Graham <gr...@yahoo.com>.
Your code looks correct.  What JDBC driver are you using?  The
implementation of SqlNullCheckedResultSet is dependent on
ResultSet.wasNull() being implemented properly.  Of course, it might be a
bug in DbUtils but the test cases pass for this class (unless the tests
have bugs too :-).

Here's the relevant method from DbUtils:
http://jakarta.apache.org/commons/dbutils/xref/org/apache/commons/dbutils/wrappers/SqlNullCheckedResultSet.html#354

There's not a lot of logic there that could go wrong.

David

--- "Anderson, James H [IT]" <ja...@citigroup.com> wrote:
> In the following code snippet, SqlNullCheckedResultSet is not replacing
> nulls, neither for String nor Date results.
> 
> Anyone have an idea what's wrong?
> 
> Thanks,
> 
> jim
> 
>         [...]
> 
>         try {
>             Class.forName("com.mysql.jdbc.Driver").newInstance();
>             conn = DriverManager.getConnection(url, user, pswd);
>  
>             MapListHandler mlh = new MapListHandler() {
>                     public Object handle (ResultSet rs) {
>                         SqlNullCheckedResultSet wrapper = new
> SqlNullCheckedResultSet(rs);
>                         wrapper.setNullString("--n/a--");
>                         wrapper.setNullDate(today);
>                         rs =
> ProxyFactory.instance().createResultSet(wrapper);
>                         Object returnVal = null;
>                         try {
>                             System.out.println("*** HERE ***");
>                             returnVal = super.handle(rs);
>                         } catch (Exception e) {
>                             System.out.println(e.getMessage());
>                         }
>                         return returnVal;
>                     }
>                 };
> 
>             QueryRunner run = new QueryRunner();
>             List result = (List) run.query(conn, query, mlh);
>             Iterator it1 = result.iterator();
>             while (it1.hasNext()) {
>                 Map map = (Map) it1.next();
>                 Set keys = map.keySet();
>                 Iterator it = keys.iterator();
>                 while (it.hasNext()) {
>                     String key = (String) it.next();
>                     System.out.println(key + ": " + map.get(key));
>                 }
>                 System.out.println();
>             }
>         } catch (Exception e) {
>             System.out.println(e.getMessage());
>             e.printStackTrace();
>         } finally {
>            
> org.apache.commons.dbutils.DbUtils.commitAndCloseQuietly(conn);
>         }
>     }
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
> 



	
		
__________________________________
Do you Yahoo!?
Yahoo! Photos: High-quality 4x6 digital prints for 25�
http://photos.yahoo.com/ph/print_splash

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