vert.x - 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 无关。
max_prepared_stmt_count
是您的 MySQL 数据库的配置。
不过,这很奇怪,因为默认值是 16K,这是相当高的。
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html
推荐阅读
- database - Oracle:使表保持最新状态
- c# - 使用 LibTiff.net 读取图像的中心
- python-3.x - 无法导入 openpyxl 模块
- javascript - Ionic 4 ion-slides slideOptions 第二次忽略
- typescript - Typescript异步函数返回类型void vs Promise
- ssl-certificate - 避免显示来自数据包嗅探的 https 请求
- c# - C#正确使用策略模式的方法
- docker - Minikube 服务在从命令行运行时工作,但通过 YAML 应用不起作用
- raspberry-pi - Buildroot 和 Qemu
- haskell - Haskell 中 (^) 的奇怪行为