1

我正在使用 ibatis 会话 ResultHandler 流式传输 ResultSet。

我有自己的 ResultHandler 实现

public class StreamResultHandler<T> implements ResultHandler
{
    private JobType<T> job;

    public StreamResultHandler(ReplicatorType<T> replicatorType)
    {
        this.job = replicatorType;
    }

    @Override
    public void handleResult(ResultContext context)
    {
        T type = (T) context.getResultObject();
        job.callEndPointService(type);
    }
}

当我的 select 语句没有返回任何行时,mybatis 甚至没有调用 handleResult 方法。当没有返回行时,我想对数据库进行一些更新。

是否有指定行数的计数/标志?我怎样才能做到这一点。

我正在使用 mybatis-3.2.2。

任何帮助表示赞赏。

提前致谢。

4

1 回答 1

0

将 a 添加count到您的StreamResultHandler实现并在handleResult(). 处理的总结果将在count()下面概述的方法中可用。

public class StreamResultHandler<T> implements ResultHandler
{
    private JobType<T> job;
    private int count;

    public StreamResultHandler(ReplicatorType<T> replicatorType)
    {
        this.job = replicatorType;
    }

    @Override
    public void handleResult(ResultContext context)
    {
        T type = (T) context.getResultObject();
        job.callEndPointService(type);
        count++;
    }

    public int count()
    {
        return count;
    }

}
于 2016-01-28T22:00:37.823 回答