Mybatis的Mapper是如何加载的 - Gukie/interview GitHub Wiki

  1. 每一个mapper下面的 一个SQL语句,它的id都是
id = namespace+"."+id;

详见: MapperBuilderAssistant::applyCurrentNamespace()


  1. 加载的过程

一开始,会加载mybatis的配置文件 加载配置文件的时候,同时也会将 mapper一起加载进来

  1. Mapper对应的namespace,是一个interface,会被存放起来,以check是否已经加载过了
  2. 每一个Mapper下面的SQL的ID,在整个应用中,都是namespace+"."+id的形式存在的
  3. 具体执行某个statement,就是某个SQL的时候,也是会传namespace+"."+id过来,去获取对应的SQL的

详见: XMLConfigBuilder::parseConfiguration()