package com.freetmp.mbg.plugin.upsert;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.dom.xml.XmlElement;
/**
* Created by LiuPin on 2015/5/19.
*/
public class MySqlUpsertPlugin extends AbstractUpsertPlugin {
@Override
protected void generateSqlMapContent(IntrospectedTable introspectedTable, XmlElement parent) {
generateTextBlockAppendTableName("insert into ",introspectedTable,parent);
generateActualColumnNamesWithParenthesis(introspectedTable.getAllColumns(), parent);
generateTextBlock("values ",parent);
generateParametersSeparateByCommaWithParenthesis(PROPERTY_PREFIX, introspectedTable.getAllColumns(), parent);
generateTextBlock("on duplicate key update ",parent);
generateParameterForSet(PROPERTY_PREFIX, introspectedTable.getAllColumns(), parent);
}
@Override protected void generateSqlMapContentSelective(IntrospectedTable introspectedTable, XmlElement parent) {
generateTextBlockAppendTableName("insert into ",introspectedTable,parent);
generateActualColumnNamesWithParenthesis(PROPERTY_PREFIX,true,introspectedTable.getAllColumns(),parent);
generateTextBlock("values ",parent);
generateParametersSeparateByCommaWithParenthesis(PROPERTY_PREFIX,true,introspectedTable.getAllColumns(),parent);
generateTextBlock("on duplicate key update ",parent);
generateParameterForSet(PROPERTY_PREFIX,true, introspectedTable.getAllColumns(), parent);
}
}