Mysql
 sql >> Base de données >  >> RDS >> Mysql

io.vertx.mysqlclient.MySQLPool.query ().execute n'est jamais vraiment exécuté et ne renvoie rien

Le client MySQL réactif exécute les requêtes de manière asynchrone. Donc si vous voulez lire les lignes que vous avez insérées, vous devez le faire dans le callback :

client.query("INSERT INTO mytable('id','name') VALUES ('2','Jimis2')").execute { insert ->
    if (insert.succeeded()) {

        var rows = insert.result()
        var lastInsertId = rows.property(MySQLClient.LAST_INSERTED_ID)
        println("Last inserted id is: ${lastInsertId}")

        client.query("SELECT * FROM mytable WHERE id=1").execute { select ->
            if (select.succeeded()) {
                var result = select.result()
                println("Got ${result.size()} rows ")
            } else {
                select.cause().printStackTrace()
            }

            client.close()
        }

    } else {
        insert.cause().printStackTrace()
        client.close()
    }
}