问题如题
我先查了一下提交和回滚的原理,都是要建立空间存放新数据、编写logo日志、记录操作内容、获取锁,提交时则更新日志,完成剩下的工作和释放锁,回滚则读取操作内容并进行大量io,最后也释放锁
那么当我们用jdbc的connection或是hibernate操作数据库时异常发生在commit()时,需不需要再进行rollback??
---------------------------------
今天检查时忽然发现有执行正常提交出错的现象,原因是修改某条数据时插入了datetime类型字段不兼容的字符串,本以为前面操作肯定会为此类错误抛出异常。原先的设计是判断操作时是否出异常,之后直接选择是提交还是回滚,且提交失败后无rollback措施。
我先查了一下提交和回滚的原理,都是要建立空间存放新数据、编写logo日志、记录操作内容、获取锁,提交时则更新日志,完成剩下的工作和释放锁,回滚则读取操作内容并进行大量io,最后也释放锁
那么当我们用jdbc的connection或是hibernate操作数据库时异常发生在commit()时,需不需要再进行rollback??
---------------------------------
今天检查时忽然发现有执行正常提交出错的现象,原因是修改某条数据时插入了datetime类型字段不兼容的字符串,本以为前面操作肯定会为此类错误抛出异常。原先的设计是判断操作时是否出异常,之后直接选择是提交还是回滚,且提交失败后无rollback措施。
解决方案 »
- jsp页面跳转问题 求助
- Spring+Mybatis用于J2SE的时候,怎么初始化------T_T
- org.springframework.transaction.CannotCreateTransactionException:
- 求助高手,后台大量数据在页面展示
- tomcat虚拟目录是做什么用的
- 新手的错误,请指导下
- 为什么用Jboss部署WebService总是http://localhost/,能不能改成其它域名?
- 关于在线编辑Excel的方案
- 怎么样把一台电脑上的数据库搞到另外一台电脑上去
- System.getProperty("line.separator", "\n");什么意思
- 求助,怎样在Strust2的AbstractAction中获得子类的某个属性,并且能够访问这个属性对象的内部属性[问题点数:20分]
- spring security2.0如何自定义一个Filter
看楼主什么事务啊
一般来说在异常里捕获
目前我用的hibernate,数据库时mysql,但是我想知道所有技术(无论是jdbc还是hibernate还是其他什么的),无论什么数据库,到底需不需要在commit出错时再rollback
没有用spring 需要捕捉异常,然后rollback
jdbc--commit出exception后需要rollback??
hibernate--commit出exception后不需要rollback??
spring(ssh)--commit出exception后不需要rollback??
hibernate 需要
SSH 不需要
这类问题我忽然想到,去看看hibernate的文档似乎是更好的找到答案的办法。