blog迁移至:
http://www.micmiu.com
项目框架就是标准的ssh,测试发现不能实现数据回滚,花了大半天的时间去检查配置和程序均没有问题,主要是从以下几方面去查找问题:spring 事务配置、嵌套事务、异常是否已经被捕获、dao是否强制commit。
实在找不到原因,就在相同框架的前一个项目中测试,确能正常控制数据回滚,太奇怪了,此时突然想到当前项目的数据库是mysql,mysql的表是有事务安全( 比如:InnoDB)和非事务安全(比如:ISAM、MyISAM)之分的,随即登录到mysql数据库查看:
show create table NAP_TB_USER;
CREATE TABLE `NAP_TB_USER` (
`ID` bigint(20) NOT NULL auto_increment,
`EMAIL` varchar(50) default NULL,
`MOBILE` varchar(20) default NULL,
`MSN` varchar(50) default NULL,
`INDEX_SETTING` varchar(50) default NULL,
`PASSWORD` varchar(50) default NULL,
`PHONE` varchar(20) default NULL,
`REAL_NAME` varchar(50) default NULL,
`USER_NAME` varchar(50) NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `USER_NAME` (`USER_NAME`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
可知当前的表类型是MyISAM,是非事务安全的,所以无法实现数据回滚。
只要修改表的类型即可:
alter table tablename type=InnoDb;
如果是用hibernate自动建表,而mysql数据库默认的建表类型不是InnoDb,需要修改配置文件:
<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
-----------------------------------分 ------------------------------------隔 ------------------------------------线 --------------------------------------
分享到:
相关推荐
在Spring与Hibernate的结合下,MySQL的事务控制可以通过设置不同的隔离级别(如READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLE)来优化并发性能和避免数据竞争问题。 在实际开发中,我们还需要...
在Java开发中,使用JDBC、Spring和MySQL进行数据操作时,事务管理是非常关键的一环。事务确保了数据的完整性和一致性,尤其是在并发环境中。以下是对`jdbc+spring+mysql事务理解和分析`的详细说明: 1. **原子性...
集成Hibernate时,Spring通过声明式事务管理(Declarative Transaction Management)简化了事务的处理,使得开发者无需手动编写事务控制代码。 **Hibernate 3.3** 是一个流行的Java对象关系映射(Object-Relational...
本项目“spring+jotm+ibatis+mysql实现JTA分布式事务”旨在利用这些技术来确保在分布式环境中的数据一致性。下面将详细介绍这个项目所涉及的知识点。 首先,Spring框架是Java开发中最常用的应用框架之一,它提供了...
通过这个小型的Spring+Mybatis+MySQL项目,你可以动手实践,了解如何配置和使用Spring事务,同时加深对AOP、数据库事务和框架集成的理解。记得在实际应用中根据需求调整事务策略,以确保数据的一致性和完整性。
本文将深入探讨在Spring框架中如何管理事务,以“Spring 事务简单完整例子”为出发点,结合标签“spring,事务,jdbc事务”,我们将详细解释Spring事务管理的原理和实践。 首先,Spring提供了两种事务管理方式:编程...
Spring 提供了声明式事务管理,允许开发者在不编写事务管理代码的情况下实现事务控制,极大地简化了事务处理。 实验环境主要包括 Eclipse 或 MyEclipse 开发工具,以及 Spring 4.0 及以上版本,JDK 1.7 及以上版本...
Spring事务操作示例(四种方式),包含完整代码和数据库文件(基于MySQL,在项目sql文件夹中),可运行,学习Spring事务详见博客:http://blog.csdn.net/daijin888888/article/details/51822257
本文主要针对在Spring + MyBatis环境下,或使用Spring JDBC时,Oracle事务不能正常提交的问题进行了深入分析,并提出了相应的解决方案。根据提供的部分内容,我们发现该问题与不同的数据源配置有关。具体来说,当...
Spring事务管理提供了统一的事务处理模型,使得开发者无需关注具体数据库访问技术的事务细节,简化了事务控制代码,提高了代码的可读性和可维护性。无论是使用注解还是AOP配置,都能有效地管理和协调事务,确保应用...
总之,MySQL 的事务隔离机制允许用户根据需要选择合适级别的隔离,同时提供了 `SET TRANSACTION ISOLATION LEVEL` 命令和 Spring 的 `@Transactional` 注解来灵活配置,以保证数据的一致性和应用的性能。对于开发者...
这个"Spring+Mybatis+MySql+Maven 简单的事务管理案例"是一个典型的Java Web项目,旨在演示如何在这些技术之间集成并实现事务管理。下面将详细讲解这四个技术及其在事务管理中的应用。 **Spring框架** 是一个全面的...
在这个“quartz_springbatch_dynamic”项目中,我们将看到如何将这两个强大的工具结合起来,以实现动态集群环境中的定时任务执行,并使用MySQL作为数据存储。 Quartz是一个开源的作业调度框架,允许开发者创建、...
### Spring事务的传播特性和隔离级别 #### 一、事务的基本概念 在计算机科学中,事务(transaction)是指一系列操作的集合,这些操作要么全部成功完成,要么全部失败回滚,确保数据的一致性和完整性。事务具备四个...
Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。 业务方案: 1、批处理定期提交。 2、并行批处理:并行处理工作。 3、...
Spring框架则在整个系统中起到粘合剂的作用,提供了依赖注入(DI)和面向切面编程(AOP)等核心功能。依赖注入使得对象之间的关系在运行时动态绑定,增强了代码的灵活性和可测试性;而AOP则用于实现如事务管理这样的...
Struts2+Spring+Hibernate+JSP+MySQL5是一个经典的Java Web开发框架组合,也被称为SSH框架。这个项目申报系统是基于这些技术构建的,它提供了高效、灵活且可扩展的后端架构来处理复杂的业务逻辑和数据管理。以下是...
整合Spring MVC与Hibernate,可以利用Spring的声明式事务管理,使得事务控制更加简洁。同时,Spring的DAO支持使得我们可以方便地注入SessionFactory,创建Session对象。这样,我们可以在Controller中通过Service层...
在Java开发领域,Spring框架是不可或缺的一部分,尤其在企业级应用中,它的各种模块提供了强大的支持。本知识点主要聚焦于Spring框架的一个重要组件——Spring JDBC,以及如何将它与MySQL8数据库进行整合,同时考虑...