Драйвер поддерживает пакетные операторы для ускорения массовых вставок.
И использование пакетных операторов намного более переносимо, чем использование проприетарного синтаксиса INSERT (и, насколько я могу судить, между многострочными и пакетными вставками нет большой разницы)
Изучите PreparedStatement.addBatch ()
Причина, по которой UUID не поддерживается, вероятно, состоит в том, что UUID не является частью ядра Postgres, а является просто модулем contrib.
Редактировать Относительно выполнения гетерогенных операторов
Драйвер Postgres поддерживает различные типы операторов в пакете.
Следующее работает отлично:
Connection con = DriverManager.getConnection("jdbc:postgresql://localhost/postgres", "foo", "bar");
con.setAutoCommit(false);
Statement stmt = con.createStatement();
stmt.addBatch("create table foo (id integer, data varchar(100))");
stmt.addBatch("insert into foo values (1, 'one')");
stmt.addBatch("insert into foo values (2, 'two')");
stmt.addBatch("update foo set data = 'one_other' where id = 1");
stmt.executeBatch();
con.commit();
Хотя вы теряете автоматическое экранирование, которое дает вам PreparedStatement.