INSERT
September 28, 2021 ยท View on GitHub
You can construct INSERT SQL statements using the Insert class.
Creating INSERT Statements
Create an INSERT statement:
Insert insert = StatementFactory.getInstance()
.insertInto("tableName")
.values("value1","value2","value3");
Create an INSERT statement for specific fields:
Insert insert = StatementFactory.getInstance()
.insertInto("tableName")
.field("column1", "column2","column3")
.values("value1","value2","value3");
Using Placeholders
In SQL you can use value placeholders (?) in prepared statements. This allows you to add the values later in a safe way.
You can add single placeholders in the following way:
Insert insert = StatementFactory.getInstance()
.insertInto("testTable")
.field("column1")
.valuePlaceholder();
Here is an example with multiple placeholders in one statement:
Insert insert = StatementFactory.getInstance()
.insertInto("testTable")
.field("column1", "column2","column3")
.valuePlaceholders(3);
Using Value Tables
You can also use a value table in an insert:
Insert insert = StatementFactory.getInstance().insertInto("tableName");
ValueTable table = new ValueTable(insert);
table.appendRow("a", "b")
.appendRow("c", "d");
insert.valueTable(table);
More info on value tables value tables.
Rendering INSERT Statements
Use the InsertRenderer to render Insert objects into SQL strings.
StringRendererConfig config = StringRendererConfig.builder().quoteIdentifiers(true).build();
InsertRenderer renderer = new InsertRenderer(config);
insert.accept(renderer);
String sql = renderer.render();
For a more general introduction please refer to "Rendering SQL Statements into Strings".