Java hibernate无法重新连接到mysql数据库
在我的SpringHibernate应用程序中,我们使用Java hibernate无法重新连接到mysql数据库,java,mysql,spring,hibernate,jakarta-ee,Java,Mysql,Spring,Hibernate,Jakarta Ee,在我的SpringHibernate应用程序中,我们使用org.apache.tomcat.jdbc.pool.DataSource进行连接池。当我们启动服务器时,我们可以看到与数据库的连接已建立,并且在mysql服务停止后,服务器开始抛出错误,表示连接已丢失。当mysql服务再次启动时,我们是否必须重新启动服务器以重新建立与数据库的连接?因为即使在提供autoReconnect=true参数之后,应用程序也无法建立到DB的连接。我尝试使用dbcp和c3p0。我在dbcp中发现了一些问题,但c3
org.apache.tomcat.jdbc.pool.DataSource
进行连接池。当我们启动服务器时,我们可以看到与数据库的连接已建立,并且在mysql服务停止后,服务器开始抛出错误,表示连接已丢失。当mysql服务再次启动时,我们是否必须重新启动服务器以重新建立与数据库的连接?因为即使在提供autoReconnect=true参数之后,应用程序也无法建立到DB的连接。我尝试使用dbcp和c3p0。我在dbcp中发现了一些问题,但c3p0工作正常
autoReconnect=true
现在,我的应用程序可以自动重新连接到MySQL DB。尝试添加以下参数:
validationQuery="SELECT 1"
testOnBorrow="true"
工作原理:连接池在返回连接之前尝试运行validationQuery。如果validationQuesry失败,dbcp将放弃连接,创建一个新连接并返回它
下面是一个例子:
<Resource name="jdbc/cooldatabase"
description="Strandls.com license database"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/cooldatabase?autoReconnect=true"
username="cooluser"
password="coolpassword"
initialSize="0"
maxActive="20"
maxIdle="10"
minIdle="0"
maxWait="-1"
validationQuery="SELECT 1"
testOnBorrow="true"
poolPreparedStatements="true"
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true"/>
完整详细信息:检查此项