View Javadoc
1   package de.dlr.shepard.data.spatialdata.repositories;
2   
3   public class NativeInsertStatementBuilder {
4   
5     private StringBuilder sb = new StringBuilder();
6     private boolean valuesAlreadyAdded = false;
7   
8     public NativeInsertStatementBuilder insert(String tableName, String[] columns) {
9       sb.append("INSERT INTO %s (%s)".formatted(tableName, String.join(", ", columns)));
10      return this;
11    }
12  
13    public NativeInsertStatementBuilder addValues(String values) {
14      addValuesIfNecessary();
15      sb.append(String.format("(%s),", values));
16      return this;
17    }
18  
19    public String build() {
20      sb.setLength(sb.length() - 1); // remove last ,
21      sb.append(";");
22      return sb.toString();
23    }
24  
25    private void addValuesIfNecessary() {
26      if (valuesAlreadyAdded == false) {
27        sb.append(" VALUES ");
28        valuesAlreadyAdded = true;
29      }
30    }
31  }