Java 为什么几次之后数据库连接就失败了

Java 为什么几次之后数据库连接就失败了,java,mysql,jdbc,database-connection,Java,Mysql,Jdbc,Database Connection,我使用MYSQL数据库和基本JDBC连接池来连接数据库。应用程序部署在tomcat服务器中。经过几次操作后,数据库连接将变为null 有谁能告诉我原因吗?发生这种情况的原因有几个: 使用完连接资源后,不调用close()。这可能会导致您的连接池在所有连接发出且未关闭后耗尽 在连接上多次调用close()。关闭连接会将其返回到池中,以便其他线程可以获取它。如果第二次调用close(),那么现在已经为另一个线程关闭了它 您的代码实际上是在某处将连接实例设置为null 你让一个连接处于打开和空闲状态的

我使用MYSQL数据库和基本JDBC连接池来连接数据库。应用程序部署在tomcat服务器中。经过几次操作后,数据库连接将变为null


有谁能告诉我原因吗?

发生这种情况的原因有几个:

  • 使用完
    连接
    资源后,不调用
    close()
    。这可能会导致您的连接池在所有
    连接发出且未关闭后耗尽
  • 连接上多次调用
    close()
    。关闭
    连接
    会将其返回到池中,以便其他线程可以获取它。如果第二次调用
    close()
    ,那么现在已经为另一个线程关闭了它
  • 您的代码实际上是在某处将
    连接
    实例设置为
    null
  • 你让一个
    连接处于打开和空闲状态的时间太长了,它会在你身上超时。如果您的代码在查询之间有一些长时间运行的操作,请考虑关闭<代码>连接< /代码>,并在查询之间获得新的。< /LI>
    
  • 数据库服务器出于某种原因关闭了您的连接,而您的连接池对此一无所知。为了缓解这种情况,您可以将连接池配置为在借用时进行测试。这将基本上在连接上发出一个测试查询,以确保它在移交给应用程序之前处于活动状态。注意:那里有一些开销

  • “因为”。你希望我们能够猜测问题是什么,因为你基本上没有给我们任何有用的代码或描述吗?基本上是:“它坏了,修好它!”并且请张贴实际的错误。原因可能是信号C90。