The problem is that groovy uses JDBC Statement.execute (), which expects from the statement. Here is a replacement class for groovy Sql that works around this problem (but lacks functionality)
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(); } } }
source share