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 SQLServerUpsertPlugin extends AbstractUpsertPlugin {
@Override
protected void generateSqlMapContent(IntrospectedTable introspectedTable, XmlElement parent) {
generateTextBlockAppendTableName("update ", introspectedTable,parent);
generateTextBlock(" set ",parent);
generateParameterForSet(PROPERTY_PREFIX, introspectedTable.getAllColumns(), parent);
parent.addElement(checkArrayWhere(introspectedTable));
generateTextBlock(" if @@ROWCOUNT = 0 ",parent);
generateTextBlockAppendTableName(" insert into ", introspectedTable,parent);
generateActualColumnNamesWithParenthesis(introspectedTable.getAllColumns(), parent);
generateTextBlock(" values ", parent);
generateParametersSeparateByCommaWithParenthesis(PROPERTY_PREFIX, introspectedTable.getAllColumns(), parent);
}
@Override protected void generateSqlMapContentSelective(IntrospectedTable introspectedTable, XmlElement parent) {
generateTextBlockAppendTableName("update ", introspectedTable,parent);
generateTextBlock(" set ",parent);
generateParameterForSet(PROPERTY_PREFIX,true, introspectedTable.getAllColumns(), parent);
parent.addElement(checkArrayWhere(introspectedTable));
generateTextBlock(" if @@ROWCOUNT = 0 ",parent);
generateTextBlockAppendTableName(" insert into ", introspectedTable,parent);
generateActualColumnNamesWithParenthesis(PROPERTY_PREFIX,true,introspectedTable.getAllColumns(), parent);
generateTextBlock(" values ", parent);
generateParametersSeparateByCommaWithParenthesis(PROPERTY_PREFIX,true, introspectedTable.getAllColumns(), parent);
}
}