1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.generator.codegen.mybatis3.javamapper.elements.annotated;
17
18 import static org.mybatis.generator.api.dom.OutputUtilities.javaIndent;
19 import static org.mybatis.generator.codegen.mybatis3.MyBatis3FormattingUtilities.getEscapedColumnName;
20 import static org.mybatis.generator.codegen.mybatis3.MyBatis3FormattingUtilities.getParameterClause;
21 import static org.mybatis.generator.internal.util.StringUtility.escapeStringForJava;
22
23 import java.util.Iterator;
24
25 import org.mybatis.generator.api.IntrospectedColumn;
26 import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;
27 import org.mybatis.generator.api.dom.java.Interface;
28 import org.mybatis.generator.api.dom.java.Method;
29 import org.mybatis.generator.codegen.mybatis3.javamapper.elements.UpdateByPrimaryKeyWithBLOBsMethodGenerator;
30
31
32
33
34
35 public class AnnotatedUpdateByPrimaryKeyWithBLOBsMethodGenerator extends
36 UpdateByPrimaryKeyWithBLOBsMethodGenerator {
37
38 public AnnotatedUpdateByPrimaryKeyWithBLOBsMethodGenerator() {
39 super();
40 }
41
42 @Override
43 public void addMapperAnnotations(Interface interfaze, Method method) {
44 interfaze.addImportedType(new FullyQualifiedJavaType("org.apache.ibatis.annotations.Update"));
45
46 method.addAnnotation("@Update({");
47
48 StringBuilder sb = new StringBuilder();
49 javaIndent(sb, 1);
50 sb.append("\"update ");
51 sb.append(escapeStringForJava(introspectedTable.getFullyQualifiedTableNameAtRuntime()));
52 sb.append("\",");
53 method.addAnnotation(sb.toString());
54
55
56 sb.setLength(0);
57 javaIndent(sb, 1);
58 sb.append("\"set ");
59
60 Iterator<IntrospectedColumn> iter = introspectedTable
61 .getNonPrimaryKeyColumns().iterator();
62 while (iter.hasNext()) {
63 IntrospectedColumn introspectedColumn = iter.next();
64
65 sb.append(escapeStringForJava(getEscapedColumnName(introspectedColumn)));
66 sb.append(" = ");
67 sb.append(getParameterClause(introspectedColumn));
68
69 if (iter.hasNext()) {
70 sb.append(',');
71 }
72
73 sb.append("\",");
74 method.addAnnotation(sb.toString());
75
76
77 if (iter.hasNext()) {
78 sb.setLength(0);
79 javaIndent(sb, 1);
80 sb.append(" \"");
81 }
82 }
83
84 boolean and = false;
85 iter = introspectedTable.getPrimaryKeyColumns().iterator();
86 while (iter.hasNext()) {
87 IntrospectedColumn introspectedColumn = iter.next();
88 sb.setLength(0);
89 javaIndent(sb, 1);
90 if (and) {
91 sb.append(" \"and ");
92 } else {
93 sb.append("\"where ");
94 and = true;
95 }
96
97 sb.append(escapeStringForJava(getEscapedColumnName(introspectedColumn)));
98 sb.append(" = ");
99 sb.append(getParameterClause(introspectedColumn));
100 sb.append('\"');
101 if (iter.hasNext()) {
102 sb.append(',');
103 }
104 method.addAnnotation(sb.toString());
105 }
106
107 method.addAnnotation("})");
108 }
109 }