/** * 通过反射和泛型编写通用的查询 * @param clazz * @param sql * @param objects * @return * @throws Exception */public 
 T getObject(Class
 clazz,String sql,Object ...objects) throws Exception{T entity = null;Connection connection = C3p0Utils.newInstance().getConnection();PreparedStatement preparedStatement = connection.prepareStatement(sql);for(int i=0;i
 map = new HashMap
();if(resultSet.next()){for(int i=0;i
 entry : map.entrySet()){String name = entry.getKey();Object value = entry.getValue();Method method = clazz.getMethod(toMethod(name), toClass(clazz, name));method.invoke(entity, value);}return entity;}
/** * 将字段名转换为方法名 * @param name * @return */public String toMethod(String name){    return "set"+name.substring(0, 1).toUpperCase()+name.substring(1);}
/** * 获取指定字段的数据类型 * @param clazz * @param name * @return * @throws Exception */ public Class toClass(Class clazz,String name) throws Exception{	Field field = clazz.getDeclaredField(name);	return field.getType();  }