Проблема в том, что groovy использует оператор Statement.execute () JDBC, который ожидает оператор. Вот класс замены для Groovy Sql, который работает вокруг этой проблемы (но не имеет функциональности)
/**
* Not related to mysql, just to distinguish it from Groovy's Sql class
* Created to solve this problem: /3845506/zapusk-neskolkih-operatorov-sql-iz-groovy
*/
public class MySql {
private final String password;
private final String connectionString;
private final String user;
public static newInstance(String connectionString, String user, String password, String driverName) {
Class.forName(driverName).newInstance();
return new MySql(connectionString, user, password);
}
public MySql(String connectionString, String user, String password) {
this.connectionString = connectionString;
this.user = user;
this.password = password;
}
void execute(String query) {
Connection conn = DriverManager.getConnection(connectionString, user, password);
try {
Statement statement = conn.createStatement();
for (String subQuery : query.split(";"))
{
if (subQuery.trim() == '')
continue;
statement.addBatch subQuery
}
statement.executeBatch();
}
finally {
conn.close();
}
}
}