首页 > 解决方案 > mysql客户端preparedQuery没有关闭

问题描述

public static void updateToDb(MySQLPool jdbcClient, String sql, JsonArray params, Handler<AsyncResult<Object>> handler) {
        jdbcClient
                .preparedQuery(sql)
                .execute(Tuple.tuple(params.getList()), ar -> {
                    if (ar.succeeded()) {
                        RowSet<Row> rows = ar.result();
                        handler.handle(Future.succeededFuture(rows.rowCount()));
                    } else {
                        handler.handle(Future.failedFuture(ar.cause().getMessage()));
                    }
                });
    }

当此方法执行多次时,提示此错误:Can't create more than max_prepared_stmt_count

顶点版本:3.9.8

标签: vert.x

解决方案


事实上,这与 Vert.x 无关。

max_prepared_stmt_count是您的 MySQL 数据库的配置。

不过,这很奇怪,因为默认值是 16K,这是相当高的。

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html


推荐阅读