code: @Override
      public boolean sqlMapInsertSelectiveElementGenerated(XmlElement element, IntrospectedTable introspectedTable) {
          // 清空
          XmlElement answer = new XmlElement("insert");
          answer.addAttribute(new Attribute("id", introspectedTable.getInsertSelectiveStatementId()));
          answer.addAttribute(new Attribute("parameterType", "map"));
  
          commentGenerator.addComment(answer);
  
          GeneratedKey gk = introspectedTable.getGeneratedKey();
          if (gk != null) {
              IntrospectedColumn introspectedColumn = introspectedTable.getColumn(gk.getColumn());
              // if the column is null, then it's a configuration error. The
              // warning has already been reported
              if (introspectedColumn != null) {
                  if (gk.isJdbcStandard()) {
                      XmlElementGeneratorTools.useGeneratedKeys(answer, introspectedTable, "record.");
                  } else {
                      answer.addElement(XmlElementGeneratorTools.getSelectKey(introspectedColumn, gk, "record."));
                  }
              }
          }
  
          StringBuilder sb = new StringBuilder();
  
          sb.append("insert into ");
          sb.append(introspectedTable.getFullyQualifiedTableNameAtRuntime());
          answer.addElement(new TextElement(sb.toString()));
  
          // columns
          answer.addElement(this.generateInsertColumnSelective(ListUtilities.removeIdentityAndGeneratedAlwaysColumns(introspectedTable.getAllColumns())));
          // values
          answer.addElement(new TextElement("values"));
          answer.addElement(this.generateInsertValuesSelective(ListUtilities.removeIdentityAndGeneratedAlwaysColumns(introspectedTable.getAllColumns())));
  
          XmlElementTools.replaceXmlElement(element, answer);
  
          return super.sqlMapInsertSelectiveElementGenerated(element, introspectedTable);
      }
docs: insertSelective
  具体执行顺序 http://www.mybatis.org/generator/reference/pluggingIn.html
  @param element
  @param introspectedTable
  @return