package com.taover.repository.mapper; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.support.rowset.ResultSetWrappingSqlRowSetMetaData; public class CustomJdbcTemplateRowMapper implements RowMapper{ Log log = LogFactory.getLog(this.getClass()); private Map beanFielNameToField = new HashMap(); private Method beforeMethod = null; private Method afterMethod = null; private Class classInfo; private Map tableToBeanMap; public CustomJdbcTemplateRowMapper(Class classInfo, Map tableToBeanMap) { this.classInfo = classInfo; this.tableToBeanMap = tableToBeanMap; Field[] fields = this.classInfo.getDeclaredFields(); for(Field item: fields) { try { item.setAccessible(true); this.beanFielNameToField.put(item.getName(), item); }catch (Exception e) { log.error("set field accessible:"+e.getMessage()); } } boolean hasImplementPointCut = false; Class[] interfaceArr = this.classInfo.getInterfaces(); for(int i=0; i Integer convert Long:"+e.getMessage()); } }else { log.error("map set object field error:"+e.getMessage()); } } catch (IllegalAccessException e) { log.error("map set object field error:"+e.getMessage()); } } if(this.afterMethod != null){ try { afterMethod.invoke(targetObj); }catch (Exception e) { log.error("invoke after exception:"+e.getMessage()); } } return targetObj; } }