code: public static <T> List<T> getList(Class<T> clazz, String sql, Object... arg) {
  
          Connection connection = JDBCUtils.getConnection();
          List<T> list = null;// 存放返回的集合对象
          // 存放所有获取的记录的Map对象
          List<Map<String, Object>> listProperties = new ArrayList<Map<String, Object>>();
  
          PreparedStatement ps = null;
          ResultSet result = null;
  
          // 填充占位符
  
          try {
              ps = connection.prepareStatement(sql);
              for (int i = 0; i < arg.length; i++) {
                  ps.setObject(i + 1, arg[i]);
              }
  
              // 执行SQL语句
              result = ps.executeQuery();
  
              // 获取结果集中所有记录
              listProperties = handleResultSetToMapList(result, listProperties);
  
              // 获取每条记录中相应的对象
              list = DBUtils.transformMapListToBeanList(clazz, listProperties);
          } catch (SQLException e) {
              e.printStackTrace();
          } catch (InstantiationException e) {
              e.printStackTrace();
          } catch (IllegalAccessException e) {
              e.printStackTrace();
          } catch (InvocationTargetException e) {
              e.printStackTrace();
          } finally {
              JDBCUtils.release(result, ps, connection);
          }
  
          return list;
      }
docs: 查找所有符合查找条件的记录，并包装成相应对象返回，传入的T类的定义必须符合JavaBean规范。
  
  @param clazz 需要查找的对象的所属类的一个类（Class）
  @param sql   只能是SELECT语句,SQL语句中的字段别名必须与T类里的相应属性相同
  @param arg   SQL语句中的参数占位符参数
  @return 将所有符合条件的记录包装成相应对象，并返回所有对象的集合,若没有记录将返回一个空数组