Mybatis的结果集中的Do要不要有setter

  这个问题起源于我和同事一次讨论,我说一个Do必须要有setter,同事说不用,结果打脸了,真的不需要一定要有setter。

  我当时就纳闷了,怎么做到的呢?于是我翻了下源码

  终于让我找到了

  整个ResultSetHandler就不分析了,过程也并不复杂

public class SetFieldInvoker implements Invoker {
  private Field field;

  public SetFieldInvoker(Field field) {
    this.field = field;
  }

  @Override
  public Object invoke(Object target, Object[] args) throws IllegalAccessException, InvocationTargetException {
    field.set(target, args[0]);
    return null;
  }

  对于没有setter方法的一个Do,在对他进行填充的时候,不是通过setter方式,而是直接对这个field操作

  

原文地址:https://www.cnblogs.com/juniorMa/p/13921673.html