MyBatis - 当select语句没有返回任何行时,不会调用ResultHandler

时间:2015-01-21 18:15:08

标签: mybatis mybatis-generator

我使用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);
    }
}
&#13;
&#13;
&#13;

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

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

我正在使用mybatis-3.2.2。

感谢任何帮助。

提前致谢。

1 个答案:

答案 0 :(得分:0)

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;
    }

}