Java 类org.springframework.dao.TypeMismatchDataAccessException 实例源码

项目:lams    文件:SingleColumnRowMapper.java   
/**
 * Extract a value for the single column in the current row.
 * <p>Validates that there is only one column selected,
 * then delegates to {@code getColumnValue()} and also
 * {@code convertValueToRequiredType}, if necessary.
 * @see java.sql.ResultSetMetaData#getColumnCount()
 * @see #getColumnValue(java.sql.ResultSet, int, Class)
 * @see #convertValueToRequiredType(Object, Class)
 */
@Override
@SuppressWarnings("unchecked")
public T mapRow(ResultSet rs, int rowNum) throws SQLException {
    // Validate column count.
    ResultSetMetaData rsmd = rs.getMetaData();
    int nrOfColumns = rsmd.getColumnCount();
    if (nrOfColumns != 1) {
        throw new IncorrectResultSetColumnCountException(1, nrOfColumns);
    }

    // Extract column value from JDBC ResultSet.
    Object result = getColumnValue(rs, 1, this.requiredType);
    if (result != null && this.requiredType != null && !this.requiredType.isInstance(result)) {
        // Extracted value does not match already: try to convert it.
        try {
            return (T) convertValueToRequiredType(result, this.requiredType);
        }
        catch (IllegalArgumentException ex) {
            throw new TypeMismatchDataAccessException(
                    "Type mismatch affecting row number " + rowNum + " and column type '" +
                    rsmd.getColumnTypeName(1) + "': " + ex.getMessage());
        }
    }
    return (T) result;
}
项目:simple-openid-provider    文件:JdbcClientRepository.java   
@Override
public OIDCClientInformation mapRow(ResultSet rs, int rowNum) throws SQLException {
    try {
        String id = rs.getString("id");
        Date issueDate = rs.getTimestamp("issue_date");
        String metadata = rs.getString("metadata");
        String secret = rs.getString("secret");
        String registrationUri = rs.getString("registration_uri");
        String accessToken = rs.getString("access_token");

        return new OIDCClientInformation(new ClientID(id), issueDate,
                OIDCClientMetadata.parse(JSONObjectUtils.parse(metadata)),
                (secret != null) ? new Secret(secret) : null,
                (registrationUri != null) ? URI.create(registrationUri) : null,
                (accessToken != null) ? new BearerAccessToken(accessToken) : null);
    }
    catch (ParseException e) {
        throw new TypeMismatchDataAccessException(e.getMessage(), e);
    }
}
项目:spring4-understanding    文件:SingleColumnRowMapper.java   
/**
 * Extract a value for the single column in the current row.
 * <p>Validates that there is only one column selected,
 * then delegates to {@code getColumnValue()} and also
 * {@code convertValueToRequiredType}, if necessary.
 * @see java.sql.ResultSetMetaData#getColumnCount()
 * @see #getColumnValue(java.sql.ResultSet, int, Class)
 * @see #convertValueToRequiredType(Object, Class)
 */
@Override
@SuppressWarnings("unchecked")
public T mapRow(ResultSet rs, int rowNum) throws SQLException {
    // Validate column count.
    ResultSetMetaData rsmd = rs.getMetaData();
    int nrOfColumns = rsmd.getColumnCount();
    if (nrOfColumns != 1) {
        throw new IncorrectResultSetColumnCountException(1, nrOfColumns);
    }

    // Extract column value from JDBC ResultSet.
    Object result = getColumnValue(rs, 1, this.requiredType);
    if (result != null && this.requiredType != null && !this.requiredType.isInstance(result)) {
        // Extracted value does not match already: try to convert it.
        try {
            return (T) convertValueToRequiredType(result, this.requiredType);
        }
        catch (IllegalArgumentException ex) {
            throw new TypeMismatchDataAccessException(
                    "Type mismatch affecting row number " + rowNum + " and column type '" +
                    rsmd.getColumnTypeName(1) + "': " + ex.getMessage());
        }
    }
    return (T) result;
}
项目:class-guard    文件:DataAccessUtils.java   
/**
 * Return a unique result object from the given Collection.
 * Throws an exception if 0 or more than 1 result objects found,
 * of if the unique result object is not convertable to the
 * specified required type.
 * @param results the result Collection (can be {@code null})
 * @return the unique result object
 * @throws IncorrectResultSizeDataAccessException if more than one
 * result object has been found in the given Collection
 * @throws EmptyResultDataAccessException if no result object
 * at all has been found in the given Collection
 * @throws TypeMismatchDataAccessException if the unique object does
 * not match the specified required type
 */
@SuppressWarnings("unchecked")
public static <T> T objectResult(Collection<?> results, Class<T> requiredType)
        throws IncorrectResultSizeDataAccessException, TypeMismatchDataAccessException {

    Object result = requiredUniqueResult(results);
    if (requiredType != null && !requiredType.isInstance(result)) {
        if (String.class.equals(requiredType)) {
            result = result.toString();
        }
        else if (Number.class.isAssignableFrom(requiredType) && Number.class.isInstance(result)) {
            try {
                result = NumberUtils.convertNumberToTargetClass(((Number) result), (Class<? extends Number>) requiredType);
            }
            catch (IllegalArgumentException ex) {
                throw new TypeMismatchDataAccessException(ex.getMessage());
            }
        }
        else {
            throw new TypeMismatchDataAccessException(
                    "Result object is of type [" + result.getClass().getName() +
                    "] and could not be converted to required type [" + requiredType.getName() + "]");
        }
    }
    return (T) result;
}
项目:class-guard    文件:SingleColumnRowMapper.java   
/**
 * Extract a value for the single column in the current row.
 * <p>Validates that there is only one column selected,
 * then delegates to {@code getColumnValue()} and also
 * {@code convertValueToRequiredType}, if necessary.
 * @see java.sql.ResultSetMetaData#getColumnCount()
 * @see #getColumnValue(java.sql.ResultSet, int, Class)
 * @see #convertValueToRequiredType(Object, Class)
 */
@SuppressWarnings("unchecked")
public T mapRow(ResultSet rs, int rowNum) throws SQLException {
    // Validate column count.
    ResultSetMetaData rsmd = rs.getMetaData();
    int nrOfColumns = rsmd.getColumnCount();
    if (nrOfColumns != 1) {
        throw new IncorrectResultSetColumnCountException(1, nrOfColumns);
    }

    // Extract column value from JDBC ResultSet.
    Object result = getColumnValue(rs, 1, this.requiredType);
    if (result != null && this.requiredType != null && !this.requiredType.isInstance(result)) {
        // Extracted value does not match already: try to convert it.
        try {
            return (T) convertValueToRequiredType(result, this.requiredType);
        }
        catch (IllegalArgumentException ex) {
            throw new TypeMismatchDataAccessException(
                    "Type mismatch affecting row number " + rowNum + " and column type '" +
                    rsmd.getColumnTypeName(1) + "': " + ex.getMessage());
        }
    }
    return (T) result;
}
项目:lams    文件:SqlFunction.java   
/**
 * Analogous to the SqlQuery.execute([]) method. This is a
 * generic method to execute a query, taken a number of arguments.
 * @param parameters array of parameters. These will be objects or
 * object wrapper types for primitives.
 * @return the value of the function
 */
public int run(Object... parameters) {
    Object obj = super.findObject(parameters);
    if (!(obj instanceof Number)) {
        throw new TypeMismatchDataAccessException("Couldn't convert result object [" + obj + "] to int");
    }
    return ((Number) obj).intValue();
}
项目:lams    文件:DataAccessUtils.java   
/**
 * Return a unique result object from the given Collection.
 * Throws an exception if 0 or more than 1 result objects found,
 * of if the unique result object is not convertable to the
 * specified required type.
 * @param results the result Collection (can be {@code null})
 * @return the unique result object
 * @throws IncorrectResultSizeDataAccessException if more than one
 * result object has been found in the given Collection
 * @throws EmptyResultDataAccessException if no result object
 * at all has been found in the given Collection
 * @throws TypeMismatchDataAccessException if the unique object does
 * not match the specified required type
 */
@SuppressWarnings("unchecked")
public static <T> T objectResult(Collection<?> results, Class<T> requiredType)
        throws IncorrectResultSizeDataAccessException, TypeMismatchDataAccessException {

    Object result = requiredUniqueResult(results);
    if (requiredType != null && !requiredType.isInstance(result)) {
        if (String.class.equals(requiredType)) {
            result = result.toString();
        }
        else if (Number.class.isAssignableFrom(requiredType) && Number.class.isInstance(result)) {
            try {
                result = NumberUtils.convertNumberToTargetClass(((Number) result), (Class<? extends Number>) requiredType);
            }
            catch (IllegalArgumentException ex) {
                throw new TypeMismatchDataAccessException(ex.getMessage());
            }
        }
        else {
            throw new TypeMismatchDataAccessException(
                    "Result object is of type [" + result.getClass().getName() +
                    "] and could not be converted to required type [" + requiredType.getName() + "]");
        }
    }
    return (T) result;
}
项目:spring4-understanding    文件:DataAccessUtils.java   
/**
 * Return a unique result object from the given Collection.
 * Throws an exception if 0 or more than 1 result objects found,
 * of if the unique result object is not convertable to the
 * specified required type.
 * @param results the result Collection (can be {@code null})
 * @return the unique result object
 * @throws IncorrectResultSizeDataAccessException if more than one
 * result object has been found in the given Collection
 * @throws EmptyResultDataAccessException if no result object
 * at all has been found in the given Collection
 * @throws TypeMismatchDataAccessException if the unique object does
 * not match the specified required type
 */
@SuppressWarnings("unchecked")
public static <T> T objectResult(Collection<?> results, Class<T> requiredType)
        throws IncorrectResultSizeDataAccessException, TypeMismatchDataAccessException {

    Object result = requiredUniqueResult(results);
    if (requiredType != null && !requiredType.isInstance(result)) {
        if (String.class == requiredType) {
            result = result.toString();
        }
        else if (Number.class.isAssignableFrom(requiredType) && Number.class.isInstance(result)) {
            try {
                result = NumberUtils.convertNumberToTargetClass(((Number) result), (Class<? extends Number>) requiredType);
            }
            catch (IllegalArgumentException ex) {
                throw new TypeMismatchDataAccessException(ex.getMessage());
            }
        }
        else {
            throw new TypeMismatchDataAccessException(
                    "Result object is of type [" + result.getClass().getName() +
                    "] and could not be converted to required type [" + requiredType.getName() + "]");
        }
    }
    return (T) result;
}
项目:spring4-understanding    文件:SqlFunction.java   
/**
 * Analogous to the SqlQuery.execute([]) method. This is a
 * generic method to execute a query, taken a number of arguments.
 * @param parameters array of parameters. These will be objects or
 * object wrapper types for primitives.
 * @return the value of the function
 */
public int run(Object... parameters) {
    Object obj = super.findObject(parameters);
    if (!(obj instanceof Number)) {
        throw new TypeMismatchDataAccessException("Couldn't convert result object [" + obj + "] to int");
    }
    return ((Number) obj).intValue();
}
项目:eHMP    文件:SimpleLineMapper.java   
@Override
public T mapLine(String line, int lineNum) {
    if (line != null && this.requiredType != null && !this.requiredType.isInstance(line)) {
        // Extracted value does not match already: try to convert it.
        try {
            return (T) convertValueToRequiredType(line, this.requiredType);
        } catch (IllegalArgumentException ex) {
            throw new TypeMismatchDataAccessException(
                    "Type mismatch affecting line number " + lineNum + "': " + ex.getMessage());
        }
    }
    return (T) line;
}
项目:class-guard    文件:SqlFunction.java   
/**
 * Analogous to the SqlQuery.execute([]) method. This is a
 * generic method to execute a query, taken a number of arguments.
 * @param parameters array of parameters. These will be objects or
 * object wrapper types for primitives.
 * @return the value of the function
 */
public int run(Object... parameters) {
    Object obj = super.findObject(parameters);
    if (!(obj instanceof Number)) {
        throw new TypeMismatchDataAccessException("Couldn't convert result object [" + obj + "] to int");
    }
    return ((Number) obj).intValue();
}
项目:lams    文件:DataAccessUtils.java   
/**
 * Return a unique int result from the given Collection.
 * Throws an exception if 0 or more than 1 result objects found,
 * of if the unique result object is not convertable to an int.
 * @param results the result Collection (can be {@code null})
 * @return the unique int result
 * @throws IncorrectResultSizeDataAccessException if more than one
 * result object has been found in the given Collection
 * @throws EmptyResultDataAccessException if no result object
 * at all has been found in the given Collection
 * @throws TypeMismatchDataAccessException if the unique object
 * in the collection is not convertable to an int
 */
public static int intResult(Collection<?> results)
        throws IncorrectResultSizeDataAccessException, TypeMismatchDataAccessException {

    return objectResult(results, Number.class).intValue();
}
项目:lams    文件:DataAccessUtils.java   
/**
 * Return a unique long result from the given Collection.
 * Throws an exception if 0 or more than 1 result objects found,
 * of if the unique result object is not convertable to a long.
 * @param results the result Collection (can be {@code null})
 * @return the unique long result
 * @throws IncorrectResultSizeDataAccessException if more than one
 * result object has been found in the given Collection
 * @throws EmptyResultDataAccessException if no result object
 * at all has been found in the given Collection
 * @throws TypeMismatchDataAccessException if the unique object
 * in the collection is not convertable to a long
 */
public static long longResult(Collection<?> results)
        throws IncorrectResultSizeDataAccessException, TypeMismatchDataAccessException {

    return objectResult(results, Number.class).longValue();
}
项目:spring4-understanding    文件:DataAccessUtils.java   
/**
 * Return a unique int result from the given Collection.
 * Throws an exception if 0 or more than 1 result objects found,
 * of if the unique result object is not convertable to an int.
 * @param results the result Collection (can be {@code null})
 * @return the unique int result
 * @throws IncorrectResultSizeDataAccessException if more than one
 * result object has been found in the given Collection
 * @throws EmptyResultDataAccessException if no result object
 * at all has been found in the given Collection
 * @throws TypeMismatchDataAccessException if the unique object
 * in the collection is not convertable to an int
 */
public static int intResult(Collection<?> results)
        throws IncorrectResultSizeDataAccessException, TypeMismatchDataAccessException {

    return objectResult(results, Number.class).intValue();
}
项目:spring4-understanding    文件:DataAccessUtils.java   
/**
 * Return a unique long result from the given Collection.
 * Throws an exception if 0 or more than 1 result objects found,
 * of if the unique result object is not convertable to a long.
 * @param results the result Collection (can be {@code null})
 * @return the unique long result
 * @throws IncorrectResultSizeDataAccessException if more than one
 * result object has been found in the given Collection
 * @throws EmptyResultDataAccessException if no result object
 * at all has been found in the given Collection
 * @throws TypeMismatchDataAccessException if the unique object
 * in the collection is not convertable to a long
 */
public static long longResult(Collection<?> results)
        throws IncorrectResultSizeDataAccessException, TypeMismatchDataAccessException {

    return objectResult(results, Number.class).longValue();
}
项目:class-guard    文件:DataAccessUtils.java   
/**
 * Return a unique int result from the given Collection.
 * Throws an exception if 0 or more than 1 result objects found,
 * of if the unique result object is not convertable to an int.
 * @param results the result Collection (can be {@code null})
 * @return the unique int result
 * @throws IncorrectResultSizeDataAccessException if more than one
 * result object has been found in the given Collection
 * @throws EmptyResultDataAccessException if no result object
 * at all has been found in the given Collection
 * @throws TypeMismatchDataAccessException if the unique object
 * in the collection is not convertable to an int
 */
public static int intResult(Collection results)
        throws IncorrectResultSizeDataAccessException, TypeMismatchDataAccessException {

    return objectResult(results, Number.class).intValue();
}
项目:class-guard    文件:DataAccessUtils.java   
/**
 * Return a unique long result from the given Collection.
 * Throws an exception if 0 or more than 1 result objects found,
 * of if the unique result object is not convertable to a long.
 * @param results the result Collection (can be {@code null})
 * @return the unique long result
 * @throws IncorrectResultSizeDataAccessException if more than one
 * result object has been found in the given Collection
 * @throws EmptyResultDataAccessException if no result object
 * at all has been found in the given Collection
 * @throws TypeMismatchDataAccessException if the unique object
 * in the collection is not convertable to a long
 */
public static long longResult(Collection results)
        throws IncorrectResultSizeDataAccessException, TypeMismatchDataAccessException {

    return objectResult(results, Number.class).longValue();
}