public List selectSql(){
String baseSql="";
baseSql="SELECT * from "+tableName ;
//通过反射进行映射,查出实体类集合
List query = jdbcTemplate.query(baseSql, new RowMapper<Object>() {
@Override
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
Class aClass = map.get(tableName);
Object obj = BeanUtils.instantiateClass(aClass);//实例化类
Field[] fields = aClass.getDeclaredFields();//获取类的bean
for (Field field:fields){
field.setAccessible(true);//成员变量置为private 时,需要设置
if (field.isAnnotationPresent(Column.class)){
Column cloumn = field.getAnnotation(Column.class);//获取注解上的信息
try {
Class<?> type = field.getType();//获取属性类型
String simpleName = type.getSimpleName();//获取属性类型的名称,如:String
if (simpleName.equalsIgnoreCase("String")){
field.set(obj,rs.getString(cloumn.name()));//设置将对应的列赋值给实体类
}
if (simpleName.equalsIgnoreCase("Integer")||simpleName.equalsIgnoreCase("int")){
field.set(obj,rs.getInt(cloumn.name()));
}
if (simpleName.equalsIgnoreCase("Boolean")){
field.set(obj,rs.getBoolean(cloumn.name()));
}
if (simpleName.equalsIgnoreCase("Long")){
field.set(obj,rs.getLong(cloumn.name()));
}
if (simpleName.equalsIgnoreCase("Double")){
field.set(obj,rs.getDouble(cloumn.name()));
}
if (simpleName.equalsIgnoreCase("Float")){
field.set(obj,rs.getFloat(cloumn.name()));
}
if (simpleName.equalsIgnoreCase("Date")){
field.set(obj,rs.getDate(cloumn.name()));
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
return obj;
}
});
return query;
}