Skip to content

Commit b7ea53e

Browse files
committed
Code polishing
1 parent 01620d6 commit b7ea53e

File tree

2 files changed

+28
-39
lines changed

2 files changed

+28
-39
lines changed

src/main/java/org/mybatis/dynamic/sql/insert/render/GeneralInsertValuePhraseVisitor.java

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.mybatis.dynamic.sql.SqlColumn;
2323
import org.mybatis.dynamic.sql.render.RenderingStrategy;
24+
import org.mybatis.dynamic.sql.util.AbstractColumnMapping;
2425
import org.mybatis.dynamic.sql.util.ConstantMapping;
2526
import org.mybatis.dynamic.sql.util.GeneralInsertMappingVisitor;
2627
import org.mybatis.dynamic.sql.util.NullMapping;
@@ -59,31 +60,26 @@ public Optional<FieldAndValueAndParameters> visit(StringConstantMapping mapping)
5960
}
6061

6162
@Override
62-
public <R> Optional<FieldAndValueAndParameters> visit(ValueMapping<R> mapping) {
63+
public <T> Optional<FieldAndValueAndParameters> visit(ValueMapping<T> mapping) {
64+
return buildFragment(mapping, mapping.value());
65+
}
66+
67+
@Override
68+
public <T> Optional<FieldAndValueAndParameters> visit(ValueWhenPresentMapping<T> mapping) {
69+
return mapping.value().flatMap(v -> buildFragment(mapping, v));
70+
}
71+
72+
private <T> Optional<FieldAndValueAndParameters> buildFragment(AbstractColumnMapping mapping, T value) {
6373
String mapKey = RenderingStrategy.formatParameterMapKey(sequence);
6474

6575
String jdbcPlaceholder = mapping.mapColumn(toJdbcPlaceholder(mapKey));
6676

6777
return FieldAndValueAndParameters.withFieldName(mapping.mapColumn(SqlColumn::name))
6878
.withValuePhrase(jdbcPlaceholder)
69-
.withParameter(mapKey, mapping.value())
79+
.withParameter(mapKey, value)
7080
.buildOptional();
7181
}
72-
73-
@Override
74-
public <R> Optional<FieldAndValueAndParameters> visit(ValueWhenPresentMapping<R> mapping) {
75-
return mapping.value().flatMap(v -> {
76-
String mapKey = RenderingStrategy.formatParameterMapKey(sequence);
77-
78-
String jdbcPlaceholder = mapping.mapColumn(toJdbcPlaceholder(mapKey));
79-
80-
return FieldAndValueAndParameters.withFieldName(mapping.mapColumn(SqlColumn::name))
81-
.withValuePhrase(jdbcPlaceholder)
82-
.withParameter(mapKey, v)
83-
.buildOptional();
84-
});
85-
}
86-
82+
8783
private Function<SqlColumn<?>, String> toJdbcPlaceholder(String parameterName) {
8884
return column -> column.renderingStrategy().orElse(renderingStrategy)
8985
.getFormattedJdbcPlaceholder(column, RenderingStrategy.DEFAULT_PARAMETER_PREFIX, parameterName);

src/main/java/org/mybatis/dynamic/sql/update/render/SetPhraseVisitor.java

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.mybatis.dynamic.sql.render.TableAliasCalculator;
2626
import org.mybatis.dynamic.sql.select.render.SelectRenderer;
2727
import org.mybatis.dynamic.sql.select.render.SelectStatementProvider;
28+
import org.mybatis.dynamic.sql.util.AbstractColumnMapping;
2829
import org.mybatis.dynamic.sql.util.ColumnToColumnMapping;
2930
import org.mybatis.dynamic.sql.util.ConstantMapping;
3031
import org.mybatis.dynamic.sql.util.FragmentAndParameters;
@@ -71,6 +72,15 @@ public Optional<FragmentAndParameters> visit(StringConstantMapping mapping) {
7172

7273
@Override
7374
public <T> Optional<FragmentAndParameters> visit(ValueMapping<T> mapping) {
75+
return buildFragment(mapping, mapping.value());
76+
}
77+
78+
@Override
79+
public <T> Optional<FragmentAndParameters> visit(ValueWhenPresentMapping<T> mapping) {
80+
return mapping.value().flatMap(v -> buildFragment(mapping, v));
81+
}
82+
83+
private <T> Optional<FragmentAndParameters> buildFragment(AbstractColumnMapping mapping, T value) {
7484
String mapKey = RenderingStrategy.formatParameterMapKey(sequence);
7585

7686
String jdbcPlaceholder = mapping.mapColumn(toJdbcPlaceholder(mapKey));
@@ -79,25 +89,13 @@ public <T> Optional<FragmentAndParameters> visit(ValueMapping<T> mapping) {
7989
+ jdbcPlaceholder;
8090

8191
return FragmentAndParameters.withFragment(setPhrase)
82-
.withParameter(mapKey, mapping.value())
92+
.withParameter(mapKey, value)
8393
.buildOptional();
8494
}
85-
86-
@Override
87-
public <R> Optional<FragmentAndParameters> visit(ValueWhenPresentMapping<R> mapping) {
88-
return mapping.value().flatMap(v -> {
89-
String mapKey = RenderingStrategy.formatParameterMapKey(sequence);
90-
91-
String jdbcPlaceholder = mapping.mapColumn(toJdbcPlaceholder(mapKey));
92-
String setPhrase = mapping.mapColumn(SqlColumn::name)
93-
+ " = " //$NON-NLS-1$
94-
+ jdbcPlaceholder;
95-
96-
return FragmentAndParameters.withFragment(setPhrase)
97-
.withParameter(mapKey, v)
98-
.buildOptional();
99-
100-
});
95+
96+
private Function<SqlColumn<?>, String> toJdbcPlaceholder(String parameterName) {
97+
return column -> column.renderingStrategy().orElse(renderingStrategy)
98+
.getFormattedJdbcPlaceholder(column, RenderingStrategy.DEFAULT_PARAMETER_PREFIX, parameterName);
10199
}
102100

103101
@Override
@@ -127,9 +125,4 @@ public Optional<FragmentAndParameters> visit(ColumnToColumnMapping mapping) {
127125
return FragmentAndParameters.withFragment(setPhrase)
128126
.buildOptional();
129127
}
130-
131-
private Function<SqlColumn<?>, String> toJdbcPlaceholder(String parameterName) {
132-
return column -> column.renderingStrategy().orElse(renderingStrategy)
133-
.getFormattedJdbcPlaceholder(column, RenderingStrategy.DEFAULT_PARAMETER_PREFIX, parameterName);
134-
}
135128
}

0 commit comments

Comments
 (0)