1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.generator.codegen.ibatis2.sqlmap.elements;
17
18 import org.mybatis.generator.api.IntrospectedColumn;
19 import org.mybatis.generator.api.dom.xml.Attribute;
20 import org.mybatis.generator.api.dom.xml.TextElement;
21 import org.mybatis.generator.api.dom.xml.XmlElement;
22 import org.mybatis.generator.codegen.ibatis2.Ibatis2FormattingUtilities;
23
24
25
26
27
28
29 public class DeleteByPrimaryKeyElementGenerator extends
30 AbstractXmlElementGenerator {
31
32 public DeleteByPrimaryKeyElementGenerator() {
33 super();
34 }
35
36 @Override
37 public void addElements(XmlElement parentElement) {
38 XmlElement answer = new XmlElement("delete");
39
40 answer.addAttribute(new Attribute(
41 "id", introspectedTable.getDeleteByPrimaryKeyStatementId()));
42 String parameterClass;
43 if (introspectedTable.getRules().generatePrimaryKeyClass()) {
44 parameterClass = introspectedTable.getPrimaryKeyType();
45 } else {
46 parameterClass = introspectedTable.getBaseRecordType();
47 }
48 answer.addAttribute(new Attribute("parameterClass",
49 parameterClass));
50
51 context.getCommentGenerator().addComment(answer);
52
53 StringBuilder sb = new StringBuilder();
54 sb.append("delete from ");
55 sb.append(introspectedTable.getFullyQualifiedTableNameAtRuntime());
56 answer.addElement(new TextElement(sb.toString()));
57
58 boolean and = false;
59 for (IntrospectedColumn introspectedColumn : introspectedTable
60 .getPrimaryKeyColumns()) {
61 sb.setLength(0);
62 if (and) {
63 sb.append(" and ");
64 } else {
65 sb.append("where ");
66 and = true;
67 }
68
69 sb.append(Ibatis2FormattingUtilities
70 .getEscapedColumnName(introspectedColumn));
71 sb.append(" = ");
72 sb.append(Ibatis2FormattingUtilities
73 .getParameterClause(introspectedColumn));
74 answer.addElement(new TextElement(sb.toString()));
75 }
76
77 if (context.getPlugins()
78 .sqlMapDeleteByPrimaryKeyElementGenerated(answer,
79 introspectedTable)) {
80 parentElement.addElement(answer);
81 }
82 }
83 }