2015-02-09 3 views
5

я нашел несколько примеров, как подключить пользовательский ResultHandler к MyBatis запроса:Как подключить ResultHandler в MyBatis Mapper XML

например https://code.google.com/p/mybatis/wiki/ResultHandlerExample

К сожалению, ResultHandler, приведенный в примере, никогда не вызывается. (Как последний комментарий уже было сказано)

Так что я искал решение и нашел это: MyBatis - ResultHandler is not invoked

Но это не совсем подходит к моей проблеме, поскольку я использую MyBatis XML-стиль путь, а не API-стиль. Так что в моем случае у меня нет

SqlSession session = MyBatisConnectionFactory.getSqlSessionFactory().openSession(true); 

Есть ли способ, чтобы подключить пользовательский обработчик в файле XML, например <resultMap /> Одер <select /> узел?

ответ

7

Вы можете определить метод с ResultHandler в вашем картографа:

public interface YourMapper { 
    void getObjects(@Param("param1") Object param1, ResultHandler handler); 
} 

Затем вы можете использовать:

List<Object> getObjects(object param1) { 
    YourResultHandler resultHandler = new YourResultHandler(); 
    yourMapper.getObjects(param1, resultHandler); 
    return resultHandler.getResults(); 
} 
+0

Как я уже писал выше, я ищу, как использовать пользовательские ResultMapper в XML-путь, а не в javacode-way –

+2

Вы спросили, как использовать ResultHandler - этот ответ правильный. – Larry

Смежные вопросы