docs: private static String getResultSetValue(ResultSet rs, int index, Class<?> requiredType) throws SQLException {
          if (requiredType == null) {
              return getResultSetValue(rs, index);
          }
  
          Object value = null;
          boolean wasNullCheck = false;
  
          // Explicitly extract typed value, as far as possible.
          if (String.class.equals(requiredType)) {
              value = rs.getString(index);
          } else if (boolean.class.equals(requiredType) || Boolean.class.equals(requiredType)) {
              value = Boolean.valueOf(rs.getBoolean(index));
              wasNullCheck = true;
          } else if (byte.class.equals(requiredType) || Byte.class.equals(requiredType)) {
              value = new Byte(rs.getByte(index));
              wasNullCheck = true;
          } else if (short.class.equals(requiredType) || Short.class.equals(requiredType)) {
              value = new Short(rs.getShort(index));
              wasNullCheck = true;
          } else if (int.class.equals(requiredType) || Integer.class.equals(requiredType)) {
              value = new Long(rs.getLong(index));
              wasNullCheck = true;
          } else if (long.class.equals(requiredType) || Long.class.equals(requiredType)) {
              value = rs.getBigDecimal(index);
              wasNullCheck = true;
          } else if (float.class.equals(requiredType) || Float.class.equals(requiredType)) {
              value = new Float(rs.getFloat(index));
              wasNullCheck = true;
          } else if (double.class.equals(requiredType) || Double.class.equals(requiredType)
                     || Number.class.equals(requiredType)) {
              value = new Double(rs.getDouble(index));
              wasNullCheck = true;
          } else if (java.sql.Time.class.equals(requiredType)) {
              // try {
              // value = rs.getTime(index);
              // } catch (SQLException e) {
              value = rs.getString(index);// 尝试拿为string对象，0000无法用Time表示
              // if (value == null && !rs.wasNull()) {
              // value = "00:00:00"; //
              // mysql设置了zeroDateTimeBehavior=convertToNull，出现0值时返回为null
              // }
              // }
          } else if (java.sql.Timestamp.class.equals(requiredType) || java.sql.Date.class.equals(requiredType)) {
              // try {
              // value = convertTimestamp(rs.getTimestamp(index));
              // } catch (SQLException e) {
              // 尝试拿为string对象，0000-00-00 00:00:00无法用Timestamp 表示
              value = rs.getString(index);
              // if (value == null && !rs.wasNull()) {
              // value = "0000:00:00 00:00:00"; //
              // mysql设置了zeroDateTimeBehavior=convertToNull，出现0值时返回为null
              // }
              // }
          } else if (BigDecimal.class.equals(requiredType)) {
              value = rs.getBigDecimal(index);
          } else if (BigInteger.class.equals(requiredType)) {
              value = rs.getBigDecimal(index);
          } else if (Blob.class.equals(requiredType)) {
              value = rs.getBlob(index);
          } else if (Clob.class.equals(requiredType)) {
              value = rs.getClob(index);
          } else if (byte[].class.equals(requiredType)) {
              try {
                  byte[] bytes = rs.getBytes(index);
                  if (bytes == null) {
                      value = null;
                  } else {
                      value = new String(bytes, "ISO-8859-1");// 将binary转化为iso-8859-1的字符串
                  }
              } catch (UnsupportedEncodingException e) {
                  throw new SQLException(e);
              }
          } else {
              // Some unknown type desired -> rely on getObject.
              value = getResultSetValue(rs, index);
          }
  
          // Perform was-null check if demanded (for results that the
          // JDBC driver returns as primitives).
          if (wasNullCheck && (value != null) && rs.wasNull()) {
              value = null;
          }
  
          return (value == null) ? null : convertUtilsBean.convert(value);
      }