我是使用hibernate连接的新手,我在执行查询之前检查连接时遇到了困难。目前,如果我执行查询,我的java swing应用程序大约会在大约30秒后挂起,然后才能确认连接不可用。我已经使用了session.isConnected()但是即使服务器已关闭,返回也始终为true。请帮忙。谢谢
这是我的连接属性:
"hibernate.connection.provider_class", "org.hibernate.connection.C3P0ConnectionProvider"
"hibernate.c3p0.validate", "true"
"hibernate.c3p0.acquire_increment", "2"
"hibernate.c3p0.idle_test_period", "30"
"hibernate.c3p0.min_size", "5"
"hibernate.c3p0.max_size", "25"
"hibernate.c3p0.max_statements", "0"
"hibernate.c3p0.testConnectionOnCheckout", "true"
"hibernate.c3p0.testConnectionOnCheckIn", "true"
"hibernate.c3p0.preferredTestQuery", "SELECT 1"
"hibernate.c3p0.acquireRetryAttempts", "3"
"hibernate.c3p0.acquireRetryDelay", "200"
"hibernate.c3p0.timeout", "1000"
"hibernate.c3p0.maxConnectionAge", "1100"
"hibernate.connection.autoReconnect", "true"
"javax.persistence.lock.timeout", "1"
"javax.persistence.query.timeout", "1"
答案 0 :(得分:0)
您使用的是连接池吗?如果是这样,您通常可以使用validationQuery(例如“SELECT 1”)对其进行配置,该验证将在分发给您之前执行。无需亲自手动完成。
您还没有使用连接池吗?使用一个!
回答您的评论:您可能需要明确启用验证。例如。将hibernate.c3p0.validate
设置为true