This is by design.  Some databases store names in all lowercase, others in
all uppercase.  MapHandler uses a special Map implementation that stores
all keys as lowercase strings and performs case insensitive lookups to
allow your code to be portable between database implementations.

David

--- John Zoetebier <[EMAIL PROTECTED]> wrote:
> I made a small test program for DbUtils to checkout MapHandler.
> As it turns out the field names in the map are changed to lowercase.
> Maybe this is intentional as it simplifies handling the returned map.
> Can anybody shed some lich ton this ?
> 
> The test program is:
> ==>
> package test;
> 
> import java.sql.Connection;
> import java.sql.DriverManager;
> import java.sql.SQLException;
> import java.util.Iterator;
> import java.util.Map;
> import java.util.Set;
> 
> import org.apache.commons.dbutils.QueryRunner;
> import org.apache.commons.dbutils.ResultSetHandler;
> import org.apache.commons.dbutils.handlers.MapHandler;
> 
> import util.Constants;
> 
> import db.DatabaseConnectionPool;
> 
> /**
>   * @author johnz
>   *
>   */
> public class TestDbUtils {
> 
>       private DatabaseConnectionPool databaseConnectionPool = new 
> DatabaseConnectionPool();
>       /**
>        *
>        */
>       public TestDbUtils() {
>               super();
>               // TODO Auto-generated constructor stub
>       }
>       
>       public void go() {
>               
>               Connection conn = null;
>               try {
>                       conn = DriverManager.getConnection(Constants.JDBC_URL);
>               } catch (SQLException se) {
>                       System.out.println(se.getMessage());
>                       return;
>               }
>               
>               QueryRunner runner = new QueryRunner();
>               ResultSetHandler rsh = new MapHandler();
>               String sql = "select * from Client where (ClientID=1)";
>               Map clientMap = null;
>               try {
>                       clientMap = (Map) runner.query(conn, sql, null, rsh);
>               } catch (SQLException se) {
>                       System.out.println(se.getMessage());
>                       return;
>               }
>               
>               Set fieldSet = clientMap.keySet();
>               Iterator iterator = fieldSet.iterator();
>               String fieldName = null;
>               
>               while (iterator.hasNext()) {
>                       fieldName = (String) iterator.next();
>                       System.out.println("Field name = " + fieldName);
>                       System.out.println("Field value = " + 
> clientMap.get(fieldName));
>               }
>               
>       }
>       
> 
>       public static void main(String[] args) {
>               new TestDbUtils().go();
>       }
> }
> ==>
> 
> DataBaseConnectionPool is a wraper class for DBCP and can be left out.
> In that case replace the connection URL to something valid for your 
> database server.
> Some of the test putput:
> ==>
> Field name = comments
> Field value = This is a test
> Comment
> More text
> Even more text.
> Field name = referrer
> Field value = null
> ==>
> 
> -- 
> John Zoetebier
> Web site: http://www.transparent.co.nz
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


__________________________________
Do you Yahoo!?
Free Pop-Up Blocker - Get it now
http://companion.yahoo.com/

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

Reply via email to