如何在 MyBatis Mapper 中连接一个 ResultHandler XML
How to connect a ResultHandler in MyBatis Mapper XML
我找到了几个如何将自定义 ResultHandler 连接到 MyBatis 查询的示例:
例如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 />
节点?
您可以在映射器中使用 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();
}
我找到了几个如何将自定义 ResultHandler 连接到 MyBatis 查询的示例:
例如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 />
节点?
您可以在映射器中使用 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();
}