File tree Expand file tree Collapse file tree 6 files changed +17
-8
lines changed
src/main/java/org/mybatis/dynamic/sql Expand file tree Collapse file tree 6 files changed +17
-8
lines changed Original file line number Diff line number Diff line change 20
20
21
21
import org .mybatis .dynamic .sql .render .RenderingContext ;
22
22
import org .mybatis .dynamic .sql .util .FragmentAndParameters ;
23
+ import org .mybatis .dynamic .sql .util .StringUtilities ;
23
24
24
25
public class StringConstant implements BindableColumn <String > {
25
26
@@ -42,8 +43,7 @@ public Optional<String> alias() {
42
43
43
44
@ Override
44
45
public FragmentAndParameters render (RenderingContext renderingContext ) {
45
- String escaped = value .replace ("'" , "''" ); //$NON-NLS-1$ //$NON-NLS-2$
46
- return FragmentAndParameters .fromFragment ("'" + escaped + "'" ); //$NON-NLS-1$ //$NON-NLS-2$
46
+ return FragmentAndParameters .fromFragment (StringUtilities .formatConstantForSQL (value ));
47
47
}
48
48
49
49
@ Override
Original file line number Diff line number Diff line change 25
25
import org .mybatis .dynamic .sql .util .GeneralInsertMappingVisitor ;
26
26
import org .mybatis .dynamic .sql .util .NullMapping ;
27
27
import org .mybatis .dynamic .sql .util .StringConstantMapping ;
28
+ import org .mybatis .dynamic .sql .util .StringUtilities ;
28
29
import org .mybatis .dynamic .sql .util .ValueMapping ;
29
30
import org .mybatis .dynamic .sql .util .ValueOrNullMapping ;
30
31
import org .mybatis .dynamic .sql .util .ValueWhenPresentMapping ;
@@ -52,7 +53,7 @@ public Optional<FieldAndValueAndParameters> visit(ConstantMapping mapping) {
52
53
@ Override
53
54
public Optional <FieldAndValueAndParameters > visit (StringConstantMapping mapping ) {
54
55
return FieldAndValueAndParameters .withFieldName (mapping .columnName ())
55
- .withValuePhrase ("'" + mapping .constant () + "'" ) //$NON-NLS-1$ //$NON-NLS-2$
56
+ .withValuePhrase (StringUtilities . formatConstantForSQL ( mapping .constant ()))
56
57
.buildOptional ();
57
58
}
58
59
Original file line number Diff line number Diff line change 23
23
import org .mybatis .dynamic .sql .util .PropertyMapping ;
24
24
import org .mybatis .dynamic .sql .util .RowMapping ;
25
25
import org .mybatis .dynamic .sql .util .StringConstantMapping ;
26
+ import org .mybatis .dynamic .sql .util .StringUtilities ;
26
27
27
28
public class MultiRowValuePhraseVisitor extends MultiRowInsertMappingVisitor <FieldAndValueAndParameters > {
28
29
protected final RenderingStrategy renderingStrategy ;
@@ -50,7 +51,7 @@ public FieldAndValueAndParameters visit(ConstantMapping mapping) {
50
51
@ Override
51
52
public FieldAndValueAndParameters visit (StringConstantMapping mapping ) {
52
53
return FieldAndValueAndParameters .withFieldName (mapping .columnName ())
53
- .withValuePhrase ("'" + mapping .constant () + "'" ) //$NON-NLS-1$ //$NON-NLS-2$
54
+ .withValuePhrase (StringUtilities . formatConstantForSQL ( mapping .constant ()))
54
55
.build ();
55
56
}
56
57
Original file line number Diff line number Diff line change 26
26
import org .mybatis .dynamic .sql .util .PropertyWhenPresentMapping ;
27
27
import org .mybatis .dynamic .sql .util .RowMapping ;
28
28
import org .mybatis .dynamic .sql .util .StringConstantMapping ;
29
+ import org .mybatis .dynamic .sql .util .StringUtilities ;
29
30
30
31
public class ValuePhraseVisitor extends InsertMappingVisitor <Optional <FieldAndValueAndParameters >> {
31
32
@@ -52,7 +53,7 @@ public Optional<FieldAndValueAndParameters> visit(ConstantMapping mapping) {
52
53
@ Override
53
54
public Optional <FieldAndValueAndParameters > visit (StringConstantMapping mapping ) {
54
55
return FieldAndValueAndParameters .withFieldName (mapping .columnName ())
55
- .withValuePhrase ("'" + mapping .constant () + "'" ) //$NON-NLS-1$ //$NON-NLS-2$
56
+ .withValuePhrase (StringUtilities . formatConstantForSQL ( mapping .constant ()))
56
57
.buildOptional ();
57
58
}
58
59
Original file line number Diff line number Diff line change 29
29
import org .mybatis .dynamic .sql .util .NullMapping ;
30
30
import org .mybatis .dynamic .sql .util .SelectMapping ;
31
31
import org .mybatis .dynamic .sql .util .StringConstantMapping ;
32
+ import org .mybatis .dynamic .sql .util .StringUtilities ;
32
33
import org .mybatis .dynamic .sql .util .UpdateMappingVisitor ;
33
34
import org .mybatis .dynamic .sql .util .ValueMapping ;
34
35
import org .mybatis .dynamic .sql .util .ValueOrNullMapping ;
@@ -58,9 +59,8 @@ public Optional<FragmentAndParameters> visit(ConstantMapping mapping) {
58
59
@ Override
59
60
public Optional <FragmentAndParameters > visit (StringConstantMapping mapping ) {
60
61
String fragment = mapping .mapColumn (renderingContext ::aliasedColumnName )
61
- + " = '" //$NON-NLS-1$
62
- + mapping .constant ()
63
- + "'" ; //$NON-NLS-1$
62
+ + " = " //$NON-NLS-1$
63
+ + StringUtilities .formatConstantForSQL (mapping .constant ());
64
64
65
65
return FragmentAndParameters .withFragment (fragment )
66
66
.buildOptional ();
Original file line number Diff line number Diff line change @@ -52,4 +52,10 @@ static String toCamelCase(String inputString) {
52
52
53
53
return sb .toString ();
54
54
}
55
+
56
+ static String formatConstantForSQL (String in ) {
57
+ String escaped = in .replace ("'" , "''" ); //$NON-NLS-1$ //$NON-NLS-2$
58
+ return "'" + escaped + "'" ; //$NON-NLS-1$ //$NON-NLS-2$
59
+
60
+ }
55
61
}
You can’t perform that action at this time.
0 commit comments