Skip to content

Commit 28a7aaa

Browse files
committed
Included character escape in SQL strings
1 parent f5bfb10 commit 28a7aaa

File tree

4 files changed

+16
-7
lines changed

4 files changed

+16
-7
lines changed

README.MD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ You can include the Maven dependency:
6464
<dependency>
6565
<groupId>com.github.collinalpert</groupId>
6666
<artifactId>lambda2sql</artifactId>
67-
<version>2.1.3</version>
67+
<version>2.1.4</version>
6868
</dependency>
6969
```
7070

pom.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.github.collinalpert</groupId>
88
<artifactId>lambda2sql</artifactId>
9-
<version>2.1.3</version>
9+
<version>2.1.4</version>
1010
<packaging>jar</packaging>
1111

1212
<name>lambda2sql</name>
@@ -66,7 +66,7 @@
6666
<dependency>
6767
<groupId>org.junit.jupiter</groupId>
6868
<artifactId>junit-jupiter-api</artifactId>
69-
<version>5.3.2</version>
69+
<version>5.5.1</version>
7070
<scope>test</scope>
7171
</dependency>
7272

@@ -77,7 +77,7 @@
7777
<plugin>
7878
<groupId>org.apache.maven.plugins</groupId>
7979
<artifactId>maven-compiler-plugin</artifactId>
80-
<version>3.8.0</version>
80+
<version>3.8.1</version>
8181
<configuration>
8282
<source>${java-version}</source>
8383
<target>${java-version}</target>
@@ -99,7 +99,7 @@
9999
<plugin>
100100
<groupId>org.apache.maven.plugins</groupId>
101101
<artifactId>maven-source-plugin</artifactId>
102-
<version>3.0.1</version>
102+
<version>3.1.0</version>
103103
<executions>
104104
<execution>
105105
<id>attach-sources</id>
@@ -112,7 +112,7 @@
112112
<plugin>
113113
<groupId>org.apache.maven.plugins</groupId>
114114
<artifactId>maven-javadoc-plugin</artifactId>
115-
<version>3.0.1</version>
115+
<version>3.1.1</version>
116116
<configuration>
117117
<additionalOptions>-html5</additionalOptions>
118118
</configuration>

src/main/java/com/github/collinalpert/lambda2sql/SqlVisitor.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ public StringBuilder visit(ConstantExpression e) {
160160
}
161161

162162
if (e.getValue() instanceof String || e.getValue() instanceof Temporal) {
163-
return sb.append("'").append(e.getValue()).append("'");
163+
return sb.append("'").append(escapeString(e.getValue().toString())).append("'");
164164
}
165165

166166
return sb.append(e.getValue().toString());
@@ -318,4 +318,9 @@ private StringBuilder doStringOperation(Expression member, Expression argument,
318318
modifier.accept(valueBuilder);
319319
return member.accept(new SqlVisitor(this.tableName, this.withBackticks, this.arguments)).append(negated ? " NOT" : "").append(" LIKE ").append(valueBuilder);
320320
}
321+
322+
private String escapeString(String input) {
323+
input = input.replace("\\", "\\\\").replace("'", "\\'");
324+
return input;
325+
}
321326
}

src/test/java/com/github/collinalpert/lambda2sql/test/Lambda2SqlTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.github.collinalpert.lambda2sql.Lambda2Sql;
44
import com.github.collinalpert.lambda2sql.functions.SqlFunction;
55
import com.github.collinalpert.lambda2sql.functions.SqlPredicate;
6+
import com.trigersoft.jaque.expression.LambdaExpression;
67
import org.junit.jupiter.api.Assertions;
78
import org.junit.jupiter.api.Test;
89

@@ -110,8 +111,11 @@ void testNotNull() {
110111
var age = 17;
111112
SqlPredicate<IPerson> p = person -> person.getAge() == age || person.getName() != isNull;
112113
SqlPredicate<IPerson> p2 = person -> person.getName() != null;
114+
SqlPredicate<IPerson> p3 = person -> person.getName() != null;
115+
p3 = p3.and(t -> t.getAge() == 18);
113116
assertPredicateEqual("`person`.`age` = 17 OR `person`.`name` IS NOT NULL", p);
114117
assertPredicateEqual("`person`.`name` IS NOT NULL", p2);
118+
assertPredicateEqual("`person`.`name` IS NOT NULL AND `person`.`age` = 18", p3);
115119
}
116120

117121
@Test

0 commit comments

Comments
 (0)