commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Graham <grahamdavid1...@yahoo.com>
Subject Re: [DbUtils] MapHandler changes field names to lowercase
Date Sat, 13 Dec 2003 03:27:27 GMT
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 <john.zoetebier@transparent.co.nz> 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: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
> 


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

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


Mime
View raw message