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

を実装に追加し、でインクリメントしcountます。処理された合計結果は、以下に概説する方法で利用できます。StreamResultHandlerhandleResult()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 に答える