Commit 09065650 authored by hewei's avatar hewei

重构代码插件依赖关系

parent c33616c4
...@@ -339,7 +339,17 @@ public class SelectiveEnhancedPlugin extends BasePlugin implements IUpsertPlugin ...@@ -339,7 +339,17 @@ public class SelectiveEnhancedPlugin extends BasePlugin implements IUpsertPlugin
*/ */
@Override @Override
public boolean sqlMapUpsertByExampleSelectiveElementGenerated(XmlElement element, List<IntrospectedColumn> columns, XmlElement insertColumnsEle, XmlElement insertValuesEle, XmlElement setsEle, IntrospectedTable introspectedTable) { public boolean sqlMapUpsertByExampleSelectiveElementGenerated(XmlElement element, List<IntrospectedColumn> columns, XmlElement insertColumnsEle, XmlElement insertValuesEle, XmlElement setsEle, IntrospectedTable introspectedTable) {
return false;
// 替换insert column
XmlElementGeneratorTools.replaceXmlElement(insertColumnsEle, this.generateInsertColumnSelective(columns));
// 替换insert values
XmlElementGeneratorTools.replaceXmlElement(insertValuesEle, this.generateInsertValuesSelective(columns, false));
// 替换update set
XmlElementGeneratorTools.replaceXmlElement(setsEle, this.generateSetsSelective(columns));
return true;
} }
// ====================================================== 一些私有节点生成方法 ========================================================= // ====================================================== 一些私有节点生成方法 =========================================================
...@@ -384,6 +394,16 @@ public class SelectiveEnhancedPlugin extends BasePlugin implements IUpsertPlugin ...@@ -384,6 +394,16 @@ public class SelectiveEnhancedPlugin extends BasePlugin implements IUpsertPlugin
* @return * @return
*/ */
private XmlElement generateInsertValuesSelective(List<IntrospectedColumn> columns) { private XmlElement generateInsertValuesSelective(List<IntrospectedColumn> columns) {
return generateInsertValuesSelective(columns, true);
}
/**
* insert column selective
* @param columns
* @param bracket
* @return
*/
private XmlElement generateInsertValuesSelective(List<IntrospectedColumn> columns, boolean bracket) {
XmlElement insertValuesChooseEle = new XmlElement("choose"); XmlElement insertValuesChooseEle = new XmlElement("choose");
XmlElement valuesWhenEle = new XmlElement("when"); XmlElement valuesWhenEle = new XmlElement("when");
...@@ -393,15 +413,17 @@ public class SelectiveEnhancedPlugin extends BasePlugin implements IUpsertPlugin ...@@ -393,15 +413,17 @@ public class SelectiveEnhancedPlugin extends BasePlugin implements IUpsertPlugin
XmlElement valuesForeachEle = new XmlElement("foreach"); XmlElement valuesForeachEle = new XmlElement("foreach");
valuesForeachEle.addAttribute(new Attribute("collection", "selective")); valuesForeachEle.addAttribute(new Attribute("collection", "selective"));
valuesForeachEle.addAttribute(new Attribute("item", "column")); valuesForeachEle.addAttribute(new Attribute("item", "column"));
valuesForeachEle.addAttribute(new Attribute("open", "("));
valuesForeachEle.addAttribute(new Attribute("separator", ",")); valuesForeachEle.addAttribute(new Attribute("separator", ","));
valuesForeachEle.addAttribute(new Attribute("close", ")")); if (bracket) {
valuesForeachEle.addAttribute(new Attribute("open", "("));
valuesForeachEle.addAttribute(new Attribute("close", ")"));
}
valuesForeachEle.addElement(new TextElement("#{record.${column.javaProperty},jdbcType=${column.jdbcType}}")); valuesForeachEle.addElement(new TextElement("#{record.${column.javaProperty},jdbcType=${column.jdbcType}}"));
valuesWhenEle.addElement(valuesForeachEle); valuesWhenEle.addElement(valuesForeachEle);
XmlElement valuesOtherwiseEle = new XmlElement("otherwise"); XmlElement valuesOtherwiseEle = new XmlElement("otherwise");
insertValuesChooseEle.addElement(valuesOtherwiseEle); insertValuesChooseEle.addElement(valuesOtherwiseEle);
valuesOtherwiseEle.addElement(XmlElementGeneratorTools.generateValuesSelective(columns, "record.")); valuesOtherwiseEle.addElement(XmlElementGeneratorTools.generateValuesSelective(columns, "record.", bracket));
return insertValuesChooseEle; return insertValuesChooseEle;
} }
......
...@@ -217,7 +217,7 @@ public class UpsertPlugin extends BasePlugin { ...@@ -217,7 +217,7 @@ public class UpsertPlugin extends BasePlugin {
insertEle.addAttribute(new Attribute("parameterType", introspectedTable.getRules().calculateAllFieldsClass().getFullyQualifiedName())); insertEle.addAttribute(new Attribute("parameterType", introspectedTable.getRules().calculateAllFieldsClass().getFullyQualifiedName()));
// 使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。所以只支持MYSQL和SQLServer // 使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。所以只支持MYSQL和SQLServer
XmlElementGeneratorTools.useGeneratedKeys(insertEle, introspectedTable); XmlElementGeneratorTools.useGeneratedKeys(insertEle, introspectedTable, "record.");
// insert // insert
insertEle.addElement(new TextElement("insert into " + introspectedTable.getFullyQualifiedTableNameAtRuntime())); insertEle.addElement(new TextElement("insert into " + introspectedTable.getFullyQualifiedTableNameAtRuntime()));
...@@ -349,7 +349,7 @@ public class UpsertPlugin extends BasePlugin { ...@@ -349,7 +349,7 @@ public class UpsertPlugin extends BasePlugin {
// insert // insert
updateEle.addElement(new TextElement("insert into " + introspectedTable.getFullyQualifiedTableNameAtRuntime())); updateEle.addElement(new TextElement("insert into " + introspectedTable.getFullyQualifiedTableNameAtRuntime()));
for (Element element : XmlElementGeneratorTools.generateKeys(columns)) { for (Element element : XmlElementGeneratorTools.generateKeys(columns, "record.")) {
updateEle.addElement(element); updateEle.addElement(element);
} }
this.generateExistsClause(introspectedTable, updateEle, XmlElementGeneratorTools.generateValues(columns, "record.", false)); this.generateExistsClause(introspectedTable, updateEle, XmlElementGeneratorTools.generateValues(columns, "record.", false));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment