@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);
    }
@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 (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()));

        
        answer.addElement(this.generateInsertColumnSelective(ListUtilities.removeIdentityAndGeneratedAlwaysColumns(introspectedTable.getAllColumns())));
        
        answer.addElement(new TextElement("values"));
        answer.addElement(this.generateInsertValuesSelective(ListUtilities.removeIdentityAndGeneratedAlwaysColumns(introspectedTable.getAllColumns())));

        XmlElementTools.replaceXmlElement(element, answer);

        return super.sqlMapInsertSelectiveElementGenerated(element, introspectedTable);
    }
@ 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 ) ; }
insertSelective
具体执行顺序 http://www.mybatis.org/generator/reference/pluggingIn.html
@param element
@param introspectedTable
@return
insertSelective 具体执行顺序 http : // www . mybatis . org / generator / reference / pluggingIn . html