Загрузка SQL-скрипта в Vertx

Я пытался загрузить схему SQL-скрипта в MySQL DB с помощью Vertx.
Хотя я могу загрузить или обновить любую отдельную команду DB, но не могу загрузить полную схему за один раз.

Вторая проблема заключается в том, что это может быть код блокировки для приложения Vertx. Если это так, как этого можно избежать?

Вот фрагмент кода, который я пытался выполнить:

  jdbcClient.getConnection(resConn -> {

                    if(resConn.succeeded()) {

                        SQLConnection connection = resConn.result();

                        connection.execute("<Trying to load the SQL Script schema>", resSchema -> {


                            connection.close();
                            if(resSchema.succeeded()) {

                                async.complete();
                            } else {
                                testContext.fail("Failed to load bootstrap schema: " + resSchema.cause().getMessage());
                            }
                        });
                    } else {
                        testContext.fail("Failed to obtain DB connection for schema write");
                    }
                });

person epiyugu    schedule 14.12.2017    source источник


Ответы (1)


Драйвер MySQL JDBC не позволяет выполнять файл как сценарий SQL. Вы должны проанализировать сценарий и выполнить отдельные команды одну за другой.

person tsegismont    schedule 14.12.2017
comment
Спасибо за ответ. При работе с Vertx, если мне удастся загрузить сценарий SQL, не будет ли это блокировать поток и может остановить приложение? - person epiyugu; 15.12.2017
comment
Если скрипт очень длинный, вы можете обернуть его обработку в executeBlocking. - person Xargos; 15.12.2017