Mybatis-ResultHandler

Mybatis接口——ResultHandler

mybatis 中的 ResultHandler 主要有2个作用:

  1. 对取出的结果进行统一处理

  2. 配合defaultFetchSize解决oom问题

那如何使用这个接口呢?

首先,在mapper xml中编写查询的sql

<select id="getObjects" resultMap="resultMap" fetchSize="50">
    select * from table where id = #{param1}
</select>

然后,在对应的mapper接口中定义这样的方法

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

最后,在service层编写调用该方法的逻辑

List<Object> getObjects(Object param1) {
    ResultHandler<Object> resultHandler = new ResultHandler<Object>() {
        @Override
        public void handleResult(ResultContext<?> resultContext) {
            // to do 对应的处理逻辑
        }
    };
    yourMapper.getObjects(param1, resultHandler);
    return resultHandler.getResults();
}

如果需要实现功能一,对取出的结果进行统一处理,那么,上面的内部匿名类也可以使用附带统一逻辑的并实现了 ResultHandler 接口的自定义类。

posted @ 2023-02-17 13:39  明小子@  阅读(967)  评论(0)    收藏  举报