Skip to content

Commit 4afa320

Browse files
authored
Merge pull request #18 from jeffgbutler/master
Minor Code Cleanup
2 parents 70dba6b + fd0d044 commit 4afa320

File tree

10 files changed

+69
-31
lines changed

10 files changed

+69
-31
lines changed

pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
<maven.compiler.testSource>1.8</maven.compiler.testSource>
3737
<junit.jupiter.version>5.0.2</junit.jupiter.version>
3838
<junit.platform.version>1.0.2</junit.platform.version>
39+
<clirr.comparisonVersion>1.0.0</clirr.comparisonVersion>
3940
</properties>
4041

4142
<reporting>

src/main/java/org/mybatis/dynamic/sql/SqlBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ static Sum sum(BasicColumn column) {
188188
}
189189

190190
// functions
191+
@SafeVarargs
191192
static <T extends Number> Add<T> add(BindableColumn<T>... columns) {
192193
return Add.of(Arrays.asList(columns));
193194
}

src/main/java/org/mybatis/dynamic/sql/select/QueryExpressionDSL.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -390,15 +390,15 @@ public R build() {
390390
public class UnionBuilder {
391391
public FromGatherer<R> select(BasicColumn...selectList) {
392392
return new FromGathererBuilder<R>()
393-
.withConnector("union")
393+
.withConnector("union") //$NON-NLS-1$
394394
.withSelectList(selectList)
395395
.withSelectDSL(selectDSL)
396396
.build();
397397
}
398398

399399
public FromGatherer<R> selectDistinct(BasicColumn...selectList) {
400400
return new FromGathererBuilder<R>()
401-
.withConnector("union")
401+
.withConnector("union") //$NON-NLS-1$
402402
.isDistinct()
403403
.withSelectList(selectList)
404404
.withSelectDSL(selectDSL)

src/main/java/org/mybatis/dynamic/sql/select/function/Add.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,9 @@
1616
package org.mybatis.dynamic.sql.select.function;
1717

1818
import java.sql.JDBCType;
19+
import java.util.ArrayList;
1920
import java.util.List;
20-
import java.util.Objects;
2121
import java.util.Optional;
22-
import java.util.StringJoiner;
2322
import java.util.stream.Collectors;
2423

2524
import org.mybatis.dynamic.sql.BindableColumn;
@@ -28,10 +27,10 @@
2827
public class Add<T extends Number> implements BindableColumn<T> {
2928

3029
private String alias;
31-
private List<BindableColumn<T>> columns;
30+
private List<BindableColumn<T>> columns = new ArrayList<>();
3231

3332
private Add(List<BindableColumn<T>> columns) {
34-
this.columns = Objects.requireNonNull(columns);
33+
this.columns.addAll(columns);
3534
}
3635

3736
@Override
@@ -42,8 +41,8 @@ public Optional<String> alias() {
4241
@Override
4342
public String renderWithTableAlias(TableAliasCalculator tableAliasCalculator) {
4443
return columns.stream()
45-
.map(column -> column.renderWithTableAlias(tableAliasCalculator))
46-
.collect(Collectors.joining(" + "));
44+
.map(column -> column.renderWithTableAlias(tableAliasCalculator))
45+
.collect(Collectors.joining(" + ")); //$NON-NLS-1$
4746
}
4847

4948
@Override

src/main/java/org/mybatis/dynamic/sql/update/UpdateDSL.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ public UpdateDSL<R> incrementBy(T value) {
134134
}
135135

136136
public UpdateDSL<R> incrementBy(Supplier<T> valueSupplier) {
137-
columnsAndValues.add(ArithmeticConstantMapping.of(column, ArithmeticOperation.add, valueSupplier));
137+
columnsAndValues.add(ArithmeticConstantMapping.of(column, ArithmeticOperation.ADD, valueSupplier));
138138
return UpdateDSL.this;
139139
}
140140

@@ -143,7 +143,7 @@ public UpdateDSL<R> decrementBy(T value) {
143143
}
144144

145145
public UpdateDSL<R> decrementBy(Supplier<T> valueSupplier) {
146-
columnsAndValues.add(ArithmeticConstantMapping.of(column, ArithmeticOperation.substract, valueSupplier));
146+
columnsAndValues.add(ArithmeticConstantMapping.of(column, ArithmeticOperation.SUBTRACT, valueSupplier));
147147
return UpdateDSL.this;
148148
}
149149

@@ -152,7 +152,7 @@ public UpdateDSL<R> multiplyBy(T value) {
152152
}
153153

154154
public UpdateDSL<R> multiplyBy(Supplier<T> valueSupplier) {
155-
columnsAndValues.add(ArithmeticConstantMapping.of(column, ArithmeticOperation.multiply, valueSupplier));
155+
columnsAndValues.add(ArithmeticConstantMapping.of(column, ArithmeticOperation.MULTIPLY, valueSupplier));
156156
return UpdateDSL.this;
157157
}
158158

@@ -161,7 +161,7 @@ public UpdateDSL<R> divideBy(T value) {
161161
}
162162

163163
public UpdateDSL<R> divideBy(Supplier<T> valueSupplier) {
164-
columnsAndValues.add(ArithmeticConstantMapping.of(column, ArithmeticOperation.divide, valueSupplier));
164+
columnsAndValues.add(ArithmeticConstantMapping.of(column, ArithmeticOperation.DIVIDE, valueSupplier));
165165
return UpdateDSL.this;
166166
}
167167
}

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,21 @@ public <T> FragmentAndParameters visit(ValueMapping<T> mapping) {
7575
.build();
7676
}
7777

78-
private Function<SqlColumn<?>, String> toJdbcPlaceholder(String parameterName) {
79-
return column -> renderingStrategy
80-
.getFormattedJdbcPlaceholder(column, "parameters", parameterName); //$NON-NLS-1$
81-
}
82-
8378
@Override
8479
public <S> FragmentAndParameters visit(ArithmeticConstantMapping<S> mapping) {
85-
String fragment = mapping.mapColumn(SqlColumn::name) + " = " + mapping.mapColumn(SqlColumn::name) + " " + mapping.operation().getOperator() + " " + mapping.valueSupplier().get(); //$NON-NLS-1$
80+
String fragment = mapping.mapColumn(SqlColumn::name)
81+
+ " = " //$NON-NLS-1$
82+
+ mapping.mapColumn(SqlColumn::name)
83+
+ " " //$NON-NLS-1$
84+
+ mapping.operation().getOperator()
85+
+ " " //$NON-NLS-1$
86+
+ mapping.valueSupplier().get();
8687
return FragmentAndParameters.withFragment(fragment)
8788
.build();
8889
}
90+
91+
private Function<SqlColumn<?>, String> toJdbcPlaceholder(String parameterName) {
92+
return column -> renderingStrategy
93+
.getFormattedJdbcPlaceholder(column, "parameters", parameterName); //$NON-NLS-1$
94+
}
8995
}

src/main/java/org/mybatis/dynamic/sql/util/ArithmeticConstantMapping.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package org.mybatis.dynamic.sql.util;
1717

18+
import java.util.Objects;
1819
import java.util.function.Supplier;
1920

2021
import org.mybatis.dynamic.sql.SqlColumn;
@@ -25,8 +26,8 @@ public class ArithmeticConstantMapping<T> extends AbstractColumnMapping implemen
2526

2627
private ArithmeticConstantMapping(SqlColumn<?> column, ArithmeticOperation operation, Supplier<T> valueSupplier) {
2728
super(column);
28-
this.operation = operation;
29-
this.valueSupplier = valueSupplier;
29+
this.operation = Objects.requireNonNull(operation);
30+
this.valueSupplier = Objects.requireNonNull(valueSupplier);
3031
}
3132

3233
public Supplier<T> valueSupplier() {
@@ -37,13 +38,13 @@ public ArithmeticOperation operation() {
3738
return operation;
3839
}
3940

40-
public static <T> ArithmeticConstantMapping<T> of(SqlColumn<?> column, ArithmeticOperation operation, Supplier<T> valueSupplier) {
41-
ArithmeticConstantMapping<T> mapping = new ArithmeticConstantMapping<>(column, operation, valueSupplier);
42-
return mapping;
43-
}
44-
4541
@Override
4642
public <R> R accept(UpdateMappingVisitor<R> visitor) {
4743
return visitor.visit(this);
4844
}
45+
46+
public static <T> ArithmeticConstantMapping<T> of(SqlColumn<?> column, ArithmeticOperation operation,
47+
Supplier<T> valueSupplier) {
48+
return new ArithmeticConstantMapping<>(column, operation, valueSupplier);
49+
}
4950
}

src/main/java/org/mybatis/dynamic/sql/util/ArithmeticOperation.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
package org.mybatis.dynamic.sql.util;
1717

1818
public enum ArithmeticOperation {
19-
add("+"),
20-
substract("-"),
21-
multiply("*"),
22-
divide("/");
19+
ADD("+"), //$NON-NLS-1$
20+
SUBTRACT("-"), //$NON-NLS-1$
21+
MULTIPLY("*"), //$NON-NLS-1$
22+
DIVIDE("/"); //$NON-NLS-1$
2323

2424
private String operator;
2525

src/main/java/org/mybatis/dynamic/sql/where/render/WhereConditionVisitor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ public Builder<T> withTableAliasCalculator(TableAliasCalculator tableAliasCalcul
160160

161161
public Builder<T> withParameterName(String parameterName) {
162162
parameterPrefix = Optional.ofNullable(parameterName)
163-
.map(pn -> pn + "." + DEFAULT_PARAMETER_PREFIX)
163+
.map(pn -> pn + "." + DEFAULT_PARAMETER_PREFIX) //$NON-NLS-1$
164164
.orElse(DEFAULT_PARAMETER_PREFIX);
165165
return this;
166166
}

src/test/java/examples/groupby/GroupByTest.java

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* Copyright 2016-2017 the original author or authors.
2+
* Copyright 2016-2018 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -183,4 +183,34 @@ public void testBasicGroupByOrderByWithCalculatedColumnAndTableAlias() {
183183
session.close();
184184
}
185185
}
186+
187+
@Test
188+
public void testGroupByAfterWhere() {
189+
SqlSession session = sqlSessionFactory.openSession();
190+
try {
191+
GroupByMapper mapper = session.getMapper(GroupByMapper.class);
192+
193+
SelectStatementProvider selectStatement = select(lastName, count().as("count"))
194+
.from(person, "a")
195+
.where(gender, isEqualTo("Male"))
196+
.groupBy(lastName)
197+
.build()
198+
.render(RenderingStrategy.MYBATIS3);
199+
200+
String expected = "select a.last_name, count(*) as count from Person a where a.gender = #{parameters.p1,jdbcType=VARCHAR} group by a.last_name";
201+
assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
202+
203+
List<Map<String, Object>> rows = mapper.generalSelect(selectStatement);
204+
assertThat(rows.size()).isEqualTo(2);
205+
Map<String, Object> row = rows.get(0);
206+
assertThat(row.get("LAST_NAME")).isEqualTo("Flintstone");
207+
assertThat(row.get("COUNT")).isEqualTo(2L);
208+
209+
row = rows.get(1);
210+
assertThat(row.get("LAST_NAME")).isEqualTo("Rubble");
211+
assertThat(row.get("COUNT")).isEqualTo(2L);
212+
} finally {
213+
session.close();
214+
}
215+
}
186216
}

0 commit comments

Comments
 (0)