这个问题估计是用mysql建立网站都会碰到的。
每天早上起来打开网页, 就会看到这个问题。。
原因是mysql有一个time_out全局值, 这个值是28800, 也就是28800秒,正好是8小时。8个小时之后会断开连接, 然后jdbc的Connection就需要重新连接才行。
在mysql中运行:show global variables like 'wait_timeout';就可以看到该数值。
问题重现
首先我们可以修改一下mysql的配置文件,来重现一下这个错误。
[mysqld]
wait_timeout=20
interactive_timeout=20
这次打开网页,只要过20秒, 刷新请求数据库的页面,就会看到这个错误了。
Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionException: JDBC begin transaction failed:
Caused by:
org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionException: JDBC begin transaction failed:
再次刷新页面就能打开。
解决方案
此方案针对dbcp.
http://blog.csdn.net/quickgu/article/details/7179023
validationQuery = "SELECT 1"
testWhileIdle = "true"
timeBetweenEvictionRunsMillis = "10"
minEvictableIdleTimeMillis = "10"
testOnBorrow = "true"/>
这里设置为10, 也就是mysql连接过期的时间的一半。
这样就会在mysql连接过期之前重新获取连接。
具体部署的时候, 改为小于28800的值就行了。
分享到:
相关推荐
对于MySQL,我们需要指定`org.hibernate.dialect.MySQL5Dialect`(针对MySQL 5.x版本)或`org.hibernate.dialect.MySQL8Dialect`(针对MySQL 8.x版本)。 11. **映射文件(.hbm.xml)**: 虽然现在更常见的是使用...
Hibernate连接MySql小实例 环境:eclipse3.5 数据库:mysql 需要建立tc数据局,tc下有张user表,user表有id,name,pass项。 请在连接数据库配置文件hibernate.ctf.xml中配置用户名和密码 很容易理解的
**使用Hibernate连接MySQL的入门小程序** 在Java编程领域,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,将复杂的SQL查询转换为简单的Java对象操作。本入门程序将带你了解如何使用Hibernate...
当使用Hibernate连接MySQL数据库时,我们需要依赖一些特定的jar包来确保所有必要的组件都已到位。标题和描述提到了"Hibernate中连接MySql所需的jar包",这暗示了我们主要关注的是与Hibernate和MySQL数据库连接相关的...
使用该代码,需要加载相应的jar包,我上传了hibernate的相关jar包,应该还需要Mysql的jar包和几个基础jar包,这个都可以根据名称在网上下载,另外,需要自己安装一个MySQL,建立数据库foxdata,然后根据代码中的实体...
在开发Java Web应用程序时,经常会遇到数据库操作中的字符编码问题,特别是当使用Hibernate框架与MySQL数据库结合时。本文将深入探讨“hibernate+mysql乱码问题”的原因、解决方案以及如何预防这类问题。 首先,...
本文将详细介绍如何使用Hibernate连接MySQL、Oracle、SQL Server以及Access数据库,包括所需的包和具体的方法。 首先,让我们来看看连接MySQL数据库所需的配置和步骤: 1. **添加依赖**:在你的项目中,你需要包含...
解决 MySQL+Hibernate 连接空闲8小时自动断开问题 概述: 在使用 MySQL 和 Hibernate 进行数据库持久层开发时,可能会遇到连接空闲8小时自动断开的问题。本文将讨论该问题的解决方案,并对相关的知识点进行详细...
MySQL数据库在长时间无操作的情况下,为了节省资源,会自动关闭闲置的连接,这通常被称为“8小时问题”。为了解决这个问题,开发者通常需要采取特定的策略,比如使用连接池。在本案例中,我们看到一种解决方案,即...
当使用Hibernate连接MySQL数据库时,我们需要确保引入了所有必要的jar包。以下是对这些jar包及其作用的详细说明: 1. **Hibernate核心库**:`hibernate-core-x.x.x.Final.jar` 是Hibernate的核心组件,包含了持久化...
MySQL+Hibernate 连接空闲8小时自动断开问题解决方案 知识点1: Hibernate 的连接池机制 在 Hibernate 中,默认情况下 使用的是 DriverManagerConnectionProvider,这是一个简单的连接池机制。它将打开的连接缓存在...
mysql数据库hibernate jar文件
2. **配置文件**:编写`applicationContext.xml`(Spring配置)和`hibernate.cfg.xml`(Hibernate配置),定义bean、数据源、session工厂等,并配置数据库连接参数。 3. **实体类和映射文件**:创建Java实体类来...
在使用Hibernate进行数据库操作时,可能会遇到MySQL数据库中文排序不正确的问题。这通常是由于字符集设置、数据库排序规则以及Hibernate的配置等因素导致的。本文将深入探讨如何解决这些问题,确保MySQL数据库中的...
在Java应用中,要使用Hibernate连接MySQL数据库,首先需要在`hibernate.cfg.xml`配置文件中设置数据库连接信息,包括URL、用户名、密码和驱动类名。例如: ```xml <property name="hibernate.connection.url">jdbc:...
简单的springboot的学习项目实例,使用了hibernate连接mysql数据库,进行简单的插入和查询操作,项目中已经包含依赖的jar包和数据库脚本,只需要创建配置的数据库并使用数据库脚本建立表即可。
以上就是使用Hibernate连接MySQL数据库的基本步骤和操作示例。注意,实际应用中还需要考虑事务管理、异常处理、性能优化等方面。在`hibernate_mysql`这个压缩包中,可能包含了这些示例的源代码,你可以下载并运行来...
本教程将详细讲解如何使用Hibernate连接MySQL数据库并自动生成表结构,这是一种相对少见但十分实用的方法。 首先,我们需要确保已安装并配置好以下软件和库: 1. MySQL数据库:确保MySQL服务器已经运行,并创建一个...
【标题】"Hibernate+MySQL包"所涉及的知识点...综上,"Hibernate+MySQL包"的使用涵盖了Java编程、数据库设计、ORM概念、JDBC连接、面向对象查询以及事务和缓存管理等多个重要知识点,是Java Web开发中常见的技术组合。
Spring Data JPA 连接 MySQL 8.x 遇到的问题总结 Spring Data JPA 是一个基于 Java 的持久层框架,它提供了简洁的数据访问方式,支持多种数据库,包括 MySQL。然而,在使用 Spring Data JPA 连接 MySQL 8.x 时,...