From: Thomas R. <tri...@us...> - 2007-06-28 05:03:52
|
Update of /cvsroot/springframework/spring/src/org/springframework/jdbc/core In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv7886/src/org/springframework/jdbc/core Modified Files: AbstractBeanPropertyRowMapper.java Log Message: improved mapping capabilities Index: AbstractBeanPropertyRowMapper.java =================================================================== RCS file: /cvsroot/springframework/spring/src/org/springframework/jdbc/core/AbstractBeanPropertyRowMapper.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AbstractBeanPropertyRowMapper.java 2 Jun 2007 15:28:51 -0000 1.3 --- AbstractBeanPropertyRowMapper.java 28 Jun 2007 05:03:49 -0000 1.4 *************** *** 1,4 **** /* ! * Copyright 2002-2006 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); --- 1,4 ---- /* ! * Copyright 2002-2007 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); *************** *** 19,40 **** import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; - import org.springframework.dao.InvalidDataAccessApiUsageException; - import org.springframework.dao.DataAccessResourceFailureException; import org.springframework.beans.BeanWrapper; import org.springframework.beans.BeanWrapperImpl; import org.springframework.beans.NotWritablePropertyException; ! import org.springframework.util.StringUtils; import org.springframework.jdbc.support.JdbcUtils; import java.lang.reflect.Constructor; - import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Field; ! import java.util.Map; ! import java.util.HashMap; import java.sql.ResultSet; - import java.sql.SQLException; import java.sql.ResultSetMetaData; import java.sql.Types; ! import java.math.BigDecimal; /** --- 19,41 ---- import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.BeanWrapper; import org.springframework.beans.BeanWrapperImpl; import org.springframework.beans.NotWritablePropertyException; ! import org.springframework.dao.DataAccessResourceFailureException; ! import org.springframework.dao.DataRetrievalFailureException; ! import org.springframework.dao.InvalidDataAccessApiUsageException; import org.springframework.jdbc.support.JdbcUtils; + import org.springframework.util.StringUtils; import java.lang.reflect.Constructor; import java.lang.reflect.Field; ! import java.lang.reflect.InvocationTargetException; ! import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.ResultSetMetaData; + import java.sql.SQLException; import java.sql.Types; ! import java.util.HashMap; ! import java.util.Map; /** *************** *** 135,138 **** --- 136,142 ---- value = rs.getBigDecimal(column); } + else if (fieldType.equals(Number.class)) { + value = rs.getObject(column); + } else if (fieldType.equals(boolean.class) || fieldType.equals(Boolean.class)) { value = (rs.getBoolean(column)) ? Boolean.TRUE : Boolean.FALSE; *************** *** 149,164 **** } } if (value != null) { ! try { ! if (logger.isDebugEnabled() && rowNumber == 0) { ! logger.debug( ! "Mapping column named \"" + column + "\"" + ! " containing values of SQL type " + fieldMeta.getSqlType() + ! " to property \"" + fieldMeta.getFieldName() + "\"" + ! " of type " + fieldMeta.getJavaType()); } - bw.setPropertyValue(fieldMeta.getFieldName(), value); } ! catch (NotWritablePropertyException ignore) { if (rowNumber == 0) { --- 153,179 ---- } } + else if (fieldType.equals(java.sql.Timestamp.class)) { + value = rs.getTimestamp(column); + } + else if (fieldType.equals(java.sql.Time.class)) { + value = rs.getTime(column); + } if (value != null) { ! if (bw.isWritableProperty(fieldMeta.getFieldName())) { ! try { ! if (logger.isDebugEnabled() && rowNumber == 0) { ! logger.debug( ! "Mapping column named \"" + column + "\"" + ! " containing values of SQL type " + fieldMeta.getSqlType() + ! " to property \"" + fieldMeta.getFieldName() + "\"" + ! " of type " + fieldMeta.getJavaType()); ! } ! bw.setPropertyValue(fieldMeta.getFieldName(), value); ! } ! catch (NotWritablePropertyException ex) { ! throw new DataRetrievalFailureException("Unable to map column " + column + " to property " + fieldMeta.getFieldName(), ex); } } ! else { if (rowNumber == 0) { |