private void setDbValueToRcd(ResultSet rs, Object f)
            throws IllegalAccessException, InvocationTargetException, InstantiationException,
            SQLException, NoSuchMethodException, ClassNotFoundException, DatatypeConfigurationException {
        logger.debug("set db value to rcd ...");
        // 获取f对象对应类中的所有属性域
        Field[] fields = f.getClass().getDeclaredFields();
        for (Field field : fields) {
            // 对于每个属性，获取属性名
            String varName = field.getName();
            if (!elementMap.containsKey(varName))
                continue;
            if (elementMap.get(varName).getColumn() == null) {
                setValueToRcdByHandler(rs, f, field, varName);
                continue;
            }
            // 获取原来的访问控制权限
            boolean accessFlag = field.isAccessible();
            // 修改访问控制权限
            field.setAccessible(true);
            // 获取对应的数据库列名
            String column = elementMap.get(varName).getColumn();
            // 获取属性域类型
            Type fieldType = field.getGenericType();
            logger.debug("fieldType is : " + fieldType + "; fieldName is : " + varName);
            if (String.class.equals(fieldType)) {
                String value = rs.getString(column);
                field.set(f, value);
            } else if (BigInteger.class.equals(fieldType)) {
                Integer value = rs.getInt(column);
                field.set(f, value == null ? null : BigInteger.valueOf(value));
            } else if (XMLGregorianCalendar.class.equals(fieldType)) {
                Timestamp value = rs.getTimestamp(column);
                field.set(f, convertToXMLGregorianCalendar(value));
            } else if (BigDecimal.class.equals(fieldType)) {
                BigDecimal value = rs.getBigDecimal(column);
                field.set(f, value == null ? null : value);
            }
            // 恢复访问控制权限
            field.setAccessible(accessFlag);
        }
    }