当前位置: 首页 > 知识库问答 >
问题:

mysql show processlist显示了11个永不消失的连接

祁嘉木
2023-03-14

我有一个使用javax.sql.datasource的web服务,如下所示:

public class AccessMysql {

 private static DataSource dataSource=null;

    public  AccessMysql(){
      if (dataSource == null){
        dataSource = DataSourceBuilder
                .create()
                .username("[username]")
                .password("[password]")
                .url("jdbc:mysql://[server]/testdb")
                .driverClassName("com.mysql.jdbc.Driver")
                .build();
      }
    }
...
}
show processlist

这11种联系会自行消失吗?我有什么办法可以从Java关闭他们吗?

共有1个答案

郏经纬
2023-03-14

如果检查DataSourceBuilder的代码,您将看到,如果它没有从您那里得到任何特定的指令,它将创建一个池化数据源(类型根据类路径上可用的类而不同):

private static final String[] DATA_SOURCE_TYPE_NAMES = new String[] {
        "org.apache.tomcat.jdbc.pool.DataSource",
        "com.zaxxer.hikari.HikariDataSource",
        "org.apache.commons.dbcp.BasicDataSource" };

这些池数据源将保持打开X个(在您的情况下可能是10个)连接数,以节省在需要时打开新连接的时间。这就是连接池的概念。

 类似资料:
  • 问题内容: 我有一个foreach循环在其中分叉。在进程派生之后,它将访问数据库。我收到一个错误: 问题是,分叉 后 ,我将连接到数据库。 我的问题:为什么会这样? 如果发生这种情况,我实际上是 在 派生 之前 访问数据库吗?子级会继承DB连接吗? (注意:我可以发布代码,但是它很大,因为它全部放在类中,这可能是导致我在访问数据库时感到困惑的原因。另一件事,您应该知道的是我正在使用ZF。) 问题答

  • 问题内容: 我试图从Xcode 11中获得新的Canvas功能,但是Canvas不会显示。我究竟做错了什么? 我刚刚创建了一个新的默认项目(单视图应用程序),对其进行了编译并激活了“编辑器>编辑器和画布”。我可以导航到项目中的每个文件,没有任何显示。 还需要做什么? 问题答案: 如官方教程所述,您需要使用 Catalina macOS版本(10.15) 警告:Catalina不支持32位应用程序,

  • 问题内容: 我正在尝试使用laravel开发实时聊天应用程序。我遇到了问题。当我运行“ node index.js”时,在命令提示符下连续显示“连接已建立”消息。 我的index.js文件是: 我的index.html页面是: 我该如何解决? 问题答案: 客户端不断尝试一遍又一遍地进行连接的通常原因是,因为客户端和服务器版本的socket.io不匹配,导致它们不兼容。您没有显示如何在网页中加载so

  • 我如何使用javascript创建一个链接,当点击它时,它会消失,而在它的位置上会出现一个隐藏的div? 我希望有这样的事情: 当您单击该链接时,div将转到“style='show'”,并且该链接消失。 我希望这是有意义的... 提前致谢

  • 本文向大家介绍iOS 11 AppIcon不显示问题小结,包括了iOS 11 AppIcon不显示问题小结的使用技巧和注意事项,需要的朋友参考一下 今天更新Xcode 9 后,在运行老项目时遇到一个小坑,就是无论如何都不显示AppIcon,在网络上找到了方法,单并没有解决,其实不是方法的问题,只是有一个小细节要注意,在这里提示一下. 出现这个问题的原因就是cocoapods与iOS 11出现点问题