ro多层的事务处理失败的困惑】的更多相关文章

现象: 用 :: ::'' 在客户端用上面的语句取得数据,然后修改数据,通过RO的web service提交数据失败: 用 -- ::-- ::'‘ 在客户端用上面的语句取得数据,然后修改数据,通过RO的web service提交数据成功. 下面是保存提交数据code: Deltas := DeltaArray.Create; try then begin delta := Deltas.Add; tmp_sql := cds_MasterData_calc.CommandText; delta…
在本系列的上一篇文章中,我们讲到了Java事务处理的基本问题,并且讲到了Service层和DAO层,在本篇文章中,我们将以BankService为例学习一个事务处理失败的案例. BankService的功能为:某个用户有两个账户,分别为银行账户和保险账户,并且有各自的账户号,BankService的transfer方法从该用户的银行账户向保险账户转帐,两个DAO分别用于对两个账户表的存取操作. 定义一个BankService接口如下: package davenkin; public inter…
在本系列的上一篇文章中我们讲到,要实现在同一个事务中使用相同的Connection对象,我们可以通过传递Connection对象的方式达到共享的目的,但是这种做法是丑陋的.在本篇文章中,我们将引入另外一种机制(ConnectionHolder)来完成事务管理. ConnectionHolder的工作机制是:我们将Connection对象放在一个全局公用的地方,然后在不同的操作中都从这个地方取得Connection,从而完成Connection共享的目的,这也是一种ServiceLocator模式…
在本系列的上一篇文章中,我们看到了一个典型的事务处理失败的案例,其主要原因在于,service层和各个DAO所使用的Connection是不一样的,而JDBC中事务处理的作用对象正是Connection对象,所以不同DAO中的操作不在同一个事务里面,从而导致事务失败.从中我们得出了教训:要避免这种失败,我们可以使所有操作共享一个Connection对象,这样应该就没有问题了. 在本篇文章中,我们将看到一个成功的,但是丑陋的事务处理方案,它的基本思路是:在service层创建Connection对…
Java中的事务处理有多简单?在使用EJB时,事务在我们几乎察觉不到的情况下发挥着作用:而在使用Spring时,也只需要配置一个TransactionManager,然后在需要事务的方法上加上Transactional注解就行了.Java的事务处理之所以这么简单是因为框架在背后为我们做了太多的工作.这样,我们虽然可以快速地完成开发工作,但是一旦程序出现问题,在一阵google和stackoverflow之后,你估计还是一筹莫展.作为一个有技术追求的程序员,你应该了解Java事务的底层工作原理.…
又一次遇到mount失败,提示文件系统类型错误.选项错误.有坏超级块等.之前是在ubuntu 14.04 lts desktop上挂载windows下共享文件夹遇到的.这次具体的环境如下:CentOS release 6.5 (Final) X86_64 共享了一个文件夹10.0.0.55/androidubuntu 14.04 lts x86_64 desktop 挂载centos上的共享文件夹 挂载命令如下:sudo mount -t cifs //10.0.0.55/android /da…
开发环境: OS:windows XP       Web Server: jakarta-tomcat-5.0.28       DataBase Server: MS SQL Server 2000 (打了SP3补丁)       IDE: MyEclipse 6.0.1 测试案例系统结构: web层<---->Service 层<---->DAO 层 web层就是Struts2,DAO 使用hibernate -3.3.1.GA-dist.zip,spring 是spring…
复制表结构 CREATE TABLE 新表 SELECT * FROM 旧表 where 1=2 复制表结构和数据CREATE TABLE 新表 SELECT * FROM 旧表 查询重复数据: select user_name,count(*) as count from user_table group by user_name having count>1; 比较日期,转换成时间戳UNIX_TIMESTAMP() select * from Table where UNIX_TIMESTA…
==================pymysql=================== 由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 pymysql 模块. pymysql 模块可以通过 pip 安装.但如果你使用的是 pycharm IDE,则可以使用 project python 安装第三方模块. [File] >> [settings] >> [Project: python] >> [Proje…
SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 device…