代码中的事务约束

在对数据库的操作中,有时一个操作往往涉及到多张表,为了避免出现向5张表中插入记录,结果插入到第三张的时候出错,结果最后导致第一二张表已插入数据,而后面三张没有插入所带来的数据不一致的情况,我们在写代码的时候需要用事务来约束。

如下:

//事物,保证数据的一致性
using (TransactionScope tr = new TransactionScope())
{
  DbHelper.ExecuteSql("insert into T_student values(‘lidan‘,23)");//操作第一张表

  DbHelper.ExecuteSql("insert into T_course values(‘数学‘)");//第二张(如果这里出问题,那么对第一张表的操作也不会进行,保证了数据的一致性)
  int id = DbHelper.GetMaxID("id", "T_course") - 1;
  DbHelper.ExecuteSql("insert into T_performance values(‘100‘,"+id+")");//第三张
  tr.Complete();//当都成功后才提交到数据库

}

写给自己看看,也写给菜鸟看看,高手多给讲讲高深的东西,这些都太基础了,学习中。

代码中的事务约束,布布扣,bubuko.com

时间: 2024-07-31 14:29:18

代码中的事务约束的相关文章

代码中的事务无法回滚

问题来源 有一小伙伴,事务提交是加在方法级上的.并且方法里写了几个更新数据库表的操作.然而当数据前几个顺利执行通过后,发现最后一个操作并未通过.按照一般的事务管理规则,此刻是应该触发事务回滚的.然而并没有触发,前两次操作成功地写入了数据库,最后一次失败告终. 问题追踪 项目大体是使用mysql数据库,管理事务是在spring中完成.其实这里跟开发语言没有任何关系,无论使用什么语言什么框架,都有可能遇到此类问题.分别以下述步骤进行了一番分析: 查看源码,发现没有逻辑错误 比对其他方法,业务异常 到

iOS 自动布局扩展应用:代码中动态调整布局常量

一.设计需求 iOS Storyboard 自动布局技术,是iOS 6才出来的新技术,相当于多屏幕分辩率下自适应的技术. 但是一些复杂情况还是难处理. 比如有一个界面需求,进度条上显示标签,这个需求不难,难的是显要在显示表格框内,在各种机型显示正常. 最初设定是垂直居中向上偏15个像素 这是iPhone 4S 显示效果,下面与滑块还有错位 但是在iPhone 6下显示,下面有错位,但是上面留空太多 但如果把偏移量设为21.则出现另一种情况. 大屏幕的手机显示完美. 但是iPhone 4S下就错位

C#和JAVA中编写事务代码

C#  DAL层代码,执行多条增删改,使用事务操作: /// <summary> /// 执行 多条增删改 (非查询语句) /// </summary> /// <param name="strSql"></param> /// <param name="paras"></param> /// <returns></returns> public static int E

storyBoard升级版 -在代码中使用约束

我们除了在 storyBoard中可以把控件进行约束,在代码中我们同样可以对其进行约束,使得你的app不管是在什么设备中,他的界面设计都不会发生改变: // // ViewController.m // 自动布局代码版 // // Created by Biaoac on 16/3/26. // Copyright © 2016年 scsys. All rights reserved. // #import "ViewController.h" @interface ViewContr

在代码中,插入数据到数据库时,如果不使用事务,将会导致速度极慢

今天测试,150条数据,调用jdbcTemplate.batchUpdate语句时,未开启事务的情况下,6m左右才能执行完,开启事务后,几百毫秒即可执行完,差距是非常大的. 因为是在一个线程池中执行的,所以任务是new出来的,不能作为bean来处理,所以不能使用注入事务的方式,只能手动调用事务管理器. 首先,从bean中获取事务管理器bean ApplicationContext().getBean(DataSourceTransactionManager.class); 其次,new一个事务定

SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因

原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需要有 SQL Server 事务和事务的隔离级别做基础铺垫.所以花了点时间,把 SQL Server 数据库中的事务概念,ACID 原则,事务中常见的问题,问题造成的原因和事务隔离级别等这些方面的知识好好的整理了一下. 其实有关 SQL Server 中的事务,说实话因为内容太多, 话题太广,稍微力度控制不好就超过了我目前知识能力范围,就不是三言两语能够讲清楚的.所以希望大家能够指出其中总结的不足之处,对我

Microsoft SQL Server中的事务与并发详解

本篇索引: 1.事务 2.锁定和阻塞 3.隔离级别 4.死锁 一.事务 1.1 事务的概念 事务是作为单个工作单元而执行的一系列操作,比如查询和修改数据等. 事务是数据库并发控制的基本单位,一条或者一组语句要么全部成功,对数据库中的某些数据成功修改; 要么全部不成功,数据库中的数据还原到这些语句执行之前的样子. 比如网上订火车票,要么你定票成功,余票显示就减一张; 要么你定票失败获取取消订票,余票的数量还是那么多.不允许出现你订票成功了,余票没有减少或者你取消订票了,余票显示却少了一张的这种情况

Microsoft SQL Server中的事务(转载)

1.1 事务的概念 事务是作为单个工作单元而执行的一系列操作,比如查询和修改数据等. 事务是数据库并发控制的基本单位,一条或者一组语句要么全部成功,对数据库中的某些数据成功修改; 要么全部不成功,数据库中的数据还原到这些语句执行之前的样子. 比如网上订火车票,要么你定票成功,余票显示就减一张; 要么你定票失败获取取消订票,余票的数量还是那么多.不允许出现你订票成功了,余票没有减少或者你取消订票了,余票显示却少了一张的这种情况.这种不被允许出现的情况就要求购票和余票减少这两个不同的操作必须放在一起

聊一聊 MySQL 中的事务及其实现原理

原文:聊一聊 MySQL 中的事务及其实现原理 说到数据库,那就一定会聊到事务,事务也是面试中常问的问题,我们先来一个面试场景: 面试官:"事务的四大特性是什么?" 我:"ACID,即原子性(Atomicity).隔离性(Isolation).持久性(Durability).一致性(Consistency)!" 面试官:"在 MySQL 数据库的 InnoDB 引擎是怎么实现这四大特性的?" 我:"这个...这个....,还真没有了解过