NativeInsertStatementBuilder.java
package de.dlr.shepard.data.spatialdata.repositories;
public class NativeInsertStatementBuilder {
private StringBuilder sb = new StringBuilder();
private boolean valuesAlreadyAdded = false;
public NativeInsertStatementBuilder insert(String tableName, String[] columns) {
sb.append("INSERT INTO %s (%s)".formatted(tableName, String.join(", ", columns)));
return this;
}
public NativeInsertStatementBuilder addValues(String values) {
addValuesIfNecessary();
sb.append(String.format("(%s),", values));
return this;
}
public String build() {
sb.setLength(sb.length() - 1); // remove last ,
sb.append(";");
return sb.toString();
}
private void addValuesIfNecessary() {
if (valuesAlreadyAdded == false) {
sb.append(" VALUES ");
valuesAlreadyAdded = true;
}
}
}