如何在MyBatis Mapper XML中连接ResultHandler

时间:2015-02-09 15:51:53

标签: java xml pagination mybatis mapper

我找到了几个如何将自定义ResultHandler连接到MyBatis查询的示例:

e.g。 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 />节点?

1 个答案:

答案 0 :(得分:7)

您可以在mapper中使用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();
}