Skip to content

Commit f0d3e64

Browse files
committed
Started in-clause via prepared statements.
1 parent d5a33f2 commit f0d3e64

File tree

11 files changed

+513
-71
lines changed

11 files changed

+513
-71
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ repositories {
2121
}
2222

2323
dependencies {
24-
implementation group: 'com.github.softwareverde', name: 'java-util', version: 'v2.0.3'
24+
implementation group: 'com.github.softwareverde', name: 'java-util', version: 'v2.0.6'
2525

2626
testImplementation group: 'junit', name: 'junit', version: '4.12'
2727
testImplementation group: 'com.h2database', name: 'h2', version: '1.4.192'

src/main/java/com/softwareverde/database/query/BatchedInsertQuery.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.softwareverde.database.query;
22

3+
import com.softwareverde.database.query.parameter.ParameterFactory;
4+
35
public class BatchedInsertQuery extends Query {
4-
protected BatchedInsertQuery(final Query query, final Boolean shouldConsumeQuery) {
5-
super(query, shouldConsumeQuery);
6+
protected BatchedInsertQuery(final Query query, final Boolean shouldConsumeQuery, final ParameterFactory parameterFactory) {
7+
super(query, shouldConsumeQuery, parameterFactory);
68
}
79

810
public BatchedInsertQuery(final String query) {
@@ -15,7 +17,7 @@ public BatchedInsertQuery(final Query query) {
1517

1618
@Override
1719
public String getQueryString() {
18-
final Integer parameterCount = _parameters.size();
20+
final Integer parameterCount = _parameters.getCount();
1921
final Integer parameterCountPerBatch = (_query.length() - _query.replace("?", "").length());
2022
final int batchCount = (parameterCount / parameterCountPerBatch);
2123

src/main/java/com/softwareverde/database/query/BatchedUpdateQuery.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package com.softwareverde.database.query;
22

3+
import com.softwareverde.database.query.parameter.ParameterFactory;
4+
35
import java.util.regex.Matcher;
46
import java.util.regex.Pattern;
57

68
public class BatchedUpdateQuery extends Query {
7-
protected BatchedUpdateQuery(final Query query, final Boolean shouldConsumeQuery) {
8-
super(query, shouldConsumeQuery);
9+
protected BatchedUpdateQuery(final Query query, final Boolean shouldConsumeQuery, final ParameterFactory parameterFactory) {
10+
super(query, shouldConsumeQuery, parameterFactory);
911
}
1012

1113
public BatchedUpdateQuery(final String query) {
@@ -19,7 +21,7 @@ public BatchedUpdateQuery(final Query query) {
1921
@Override
2022
public String getQueryString() {
2123
// UPDATE t SET v = x WHERE z IN (?)
22-
final Integer parameterCount = _parameters.size();
24+
final Integer parameterCount = _parameters.getCount();
2325
final Integer nonInClauseParameterCount = (_query.length() - _query.replace("?", "").length()) - 1;
2426
final int batchCount = (parameterCount - nonInClauseParameterCount);
2527

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.softwareverde.database.query;
2+
3+
import com.softwareverde.constable.bytearray.ByteArray;
4+
import com.softwareverde.database.query.parameter.ParameterFactory;
5+
import com.softwareverde.database.query.parameter.TypedParameter;
6+
import com.softwareverde.util.type.identifier.Identifier;
7+
8+
public class ParameterFactoryCore implements ParameterFactory {
9+
@Override
10+
public TypedParameter fromObject(final Object object) {
11+
if (object == null) { return TypedParameter.NULL; }
12+
13+
if (object instanceof Boolean) {
14+
return new TypedParameter((Boolean) object);
15+
}
16+
else if (object instanceof Long) {
17+
return new TypedParameter((Long) object);
18+
}
19+
else if (object instanceof Integer) {
20+
return new TypedParameter((Integer) object);
21+
}
22+
else if (object instanceof Short) {
23+
return new TypedParameter((Short) object);
24+
}
25+
else if (object instanceof Double) {
26+
return new TypedParameter((Double) object);
27+
}
28+
else if (object instanceof Float) {
29+
return new TypedParameter((Float) object);
30+
}
31+
else if (object instanceof byte[]) {
32+
return new TypedParameter((byte[]) object);
33+
}
34+
else if (object instanceof ByteArray) {
35+
return new TypedParameter(((ByteArray) object).getBytes());
36+
}
37+
else if (object instanceof Identifier) {
38+
return new TypedParameter(((Identifier) object).longValue());
39+
}
40+
else if (object instanceof TypedParameter) {
41+
return (TypedParameter) object;
42+
}
43+
else if (object instanceof String) {
44+
return new TypedParameter((String) object);
45+
}
46+
47+
// Warning is not logged to facilitate class extension.
48+
// final Class<?> objectClass = object.getClass();
49+
// Logger.warn("Unknown Object for TypedParameter Factory: " + objectClass.getName());
50+
51+
return null;
52+
}
53+
}

0 commit comments

Comments
 (0)