Обработка ResultSet в MyBatis
От: himace  
Дата: 23.01.16 19:41
Оценка:
Ребята, привет, подскажите пожалуйста, каким образом можно вернуть необработанный resultSet из оракловой функции через MyBatis.

Заданно:
обращение к бд в xml через MyBatis:


<mapper namespace="ru.pac.DataMapper">
     
    <select id="getData" parameterType="ru.data.Dto" statementType="CALLABLE">
        {#{data,jdbcType=CURSOR, typeHandler=ru.data.typeHandlers.RegisterTypeHandler, mode=OUT} = call USER.PAC.GET_DATA
        (#{id,jdbcType=BIGINT,mode=IN},
        #{firstType, jdbcType=VARCHAR, mode=IN},
        #{dataType, jdbcType=VARCHAR, mode=IN},
        #{fields, jdbcType=VARCHAR, mode=IN},
        #{filter, jdbcType=VARCHAR, mode=IN})}
    </select>
     
    </mapper>


мой хэндлер который должен обрабатывать весь возвращенный resultSet, просто возвращать мне его без маппинга:


 public class RegisterTypeHandler implements TypeHandler {
        @Override
        public void setParameter(PreparedStatement statement, int index, Object payments, JdbcType jdbcType) throws SQLException {
            
     
        }
     
        @Override
        public Object getResult(ResultSet rs, String columnName) throws SQLException {
         throw new UnsupportedOperationException();
        }
     
        @Override
        public Object getResult(ResultSet rs, int columnIndex) throws SQLException {
            throw new UnsupportedOperationException();
        }
     
        @Override
        public Object getResult(CallableStatement cs, int columnIndex) throws SQLException {
            return cs.getObject(columnIndex);
     
        }
    }

Вызываю стандартным способом через интерфейсный метод одноименного мэппера, но MyBatis требует resultMap для resultSet, каким образом можно вернуть чистый resultSet без обработки, для того чтобы в дальнейшем спокойно работать с ним.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.