Example usage for org.springframework.jdbc IncorrectResultSetColumnCountException IncorrectResultSetColumnCountException

List of usage examples for org.springframework.jdbc IncorrectResultSetColumnCountException IncorrectResultSetColumnCountException

Introduction

In this page you can find the example usage for org.springframework.jdbc IncorrectResultSetColumnCountException IncorrectResultSetColumnCountException.

Prototype

public IncorrectResultSetColumnCountException(int expectedCount, int actualCount) 

Source Link

Document

Constructor for IncorrectResultSetColumnCountException.

Usage

From source file:com.gzj.tulip.jade.rowmapper.MapEntryColumnRowMapper.java

public Object mapRow(ResultSet rs, int rowNum) throws SQLException {

    // ?/*  w  w w  .  ja va 2  s  . c o  m*/
    if (rowNum == 0) {
        ResultSetMetaData rsmd = rs.getMetaData();
        int nrOfColumns = rsmd.getColumnCount();
        if (nrOfColumns != 2) {
            throw new IncorrectResultSetColumnCountException(2, nrOfColumns);
        }

        if (StringUtils.isNotEmpty(keyColumn)) {
            keyColumnIndex = rs.findColumn(keyColumn);
            if (keyColumnIndex == 1) {
                valueColumnIndex = 2;
            } else if (keyColumnIndex == 2) {
                valueColumnIndex = 1;
            } else {
                throw new IllegalArgumentException(
                        String.format("wrong key name %s for method: %s ", keyColumn, modifier.getMethod()));
            }
            keyColumn = null;
        }
        if (logger.isDebugEnabled()) {
            logger.debug(String.format("keyIndex=%s; valueIndex=%s; for method: %s ", keyColumnIndex,
                    valueColumnIndex, modifier.getMethod()));
        }
    }

    //   JDBC ResultSet ?  Key
    Object key = JdbcUtils.getResultSetValue(rs, keyColumnIndex, keyType);
    if (key != null && !keyType.isInstance(key)) {
        ResultSetMetaData rsmd = rs.getMetaData();
        throw new TypeMismatchDataAccessException( // NL
                "Type mismatch affecting row number " + rowNum + " and column type '"
                        + rsmd.getColumnTypeName(keyColumnIndex) + "' expected type is '" + keyType + "'");
    }

    //   JDBC ResultSet ?  Value
    Object value = JdbcUtils.getResultSetValue(rs, valueColumnIndex, valueType);
    if (value != null && !valueType.isInstance(value)) {
        ResultSetMetaData rsmd = rs.getMetaData();
        throw new TypeMismatchDataAccessException( // NL
                "Type mismatch affecting row number " + rowNum + " and column type '"
                        + rsmd.getColumnTypeName(valueColumnIndex) + "' expected type is '" + valueType + "'");
    }

    // key?null??
    return new MapEntryImpl<Object, Object>(key, value);
}