1--Case

比如t_Order订单表1,t_OrderDetail订单明细表2

下一张订单会往表1插入一条数据,表2会插入多行数据

使用Spring.net事务管理

例如

---Order---订单主信息-------

public class OrderBIL

{

private void InsertOrderHeader(Order order)

  {

OrderDAL.InsertOrderHeader(Order order);

  }

}

public class OrderDAL

{

private void InsertOrderHeader(Order order)

  {

string insertSQL="insert into Order(orderNo,CreateTime,Creator,CreatName,SupplierCode,SupplierName,ClientCode,ClientName)"

    .........................as so on

  }

}

--订单明细表----OrderDetail-----

public class OrderDetailBIL

{

private void InsertOrderDetail(Order order)

  {

OrderDetailDAL.InsertOrderDetail(Order order);

  }

}

public class OrderDetailDAL

{

private void InsertOrderDetail(Order order)

  {

string insertSQL="insert into Order(orderNo,CreateTime,Creator,CreatName,SupplierCode,SupplierName,ClientCode,ClientName)"

    .........................as so on

  }

}

public InterFace IOrderService

{

void CreateOrder(Order OrderHeader,OrderDetail orderDetail);

}

--Service 实现类

public class OrderManageSerivceIMPL:IOrderService

{

private void CreateOrder(Order OrderHeader,OrderDetail orderDetail)

  {

OrderBIL.InsertOrderHeader(OrderHeader);

OrderDetailBIL.InsertOrderDetail(orderDetail);

  }

}

public class OrderManageSerivceTransaction

{

public OrderManageSerivce OrderManageSerivce{

private void CreateOrder(Order OrderHeader,OrderDetail orderDetail)

  {

OrderManageSerivce.CreateOrder(OrderHeader,orderDetail);

  }

}

事务调用----

IOrderService orderService=(IOrderService)BeanFactory.getObject("OrderManageSerivceTransaction");

orderService.CreateOrder(OrderHeader,orderDetail);

---这个是Spring.net事务封装整个过程

如果插入表1成功,表2不成功整个事务回滚--呵呵

如果在某一个类中使用了异常处理

比如:

public class OrderDetailBIL

{

private void InsertOrderDetail(Order order)

  {

try{

OrderDetailDAL.InsertOrderDetail(Order order);  

    }

catch(exception ex)

{

case 1: throw new Exception(ex.Message);

case 2: Log.WriteInfo(ex.Message);

}

  }

}

case 1: Spring事务运行到这的时候,将回滚

case 2: Spring事务不回滚--将回出现这样情况---表1插入数据成功,表2插入数据失败

-----------好的东东下回分解--------------------------------------------------------

Spring.net--很棒的事务处理的更多相关文章

  1. Spring Boot 揭秘与实战(四) 配置文件篇 - 有哪些很棒的特性

    文章目录 1. 使用属性文件2. YAML文件 1.1. 自定义属性 1.2. 参数引用 1.3. 随机数属性 1.4. application-{profile}.properties参数加载 3. ...

  2. EasyDropDown – 很棒的下拉菜单,含精美主题

    EasyDropDown 是一个 jQuery 插件,你可以毫不费力地将简陋的 Select 元素设置为可定制风格的下拉菜单,用于表单或者一般的导航.和著名的下拉插件 Chosen 很像,但是具有自己 ...

  3. 优秀工具推荐:两款很棒的 HTML5 游戏开发工具

    HTML5 众多强大特性让我们不需要多么高深技术就能创建好玩的网页游戏,同时证明了开放的 Web 技术能与任何其他在游戏开发中使用的技术竞争.正如标题所说,这篇文章推荐的几款很棒 HTML5 游戏开发 ...

  4. 10个很棒的学习Android 开发的网站(转)

    看到江湖旅人 写的<10个很棒的学习iOS开发的网站 - 简书>,所以就忍不住写Android 啦,也希望对大家有帮助.我推荐的网站,都是我在学习Android 开发过程中发现的好网站,给 ...

  5. 推荐几款很棒的 JavaScript 表单美化和验证插件

    表单元素让人爱恨交加.作为网页最重要的组成部分,表单几乎无处不在,从简单的邮件订阅.登陆注册到复杂的需要多页填写的信息提交功能,表单都让开发者花费了大量的时间和精力去处理,以期实现好用又漂亮的表单功能 ...

  6. IOS学习资源收集--关于动画的代码学习资源总汇(很棒的动画效果哦)

    目录大纲: 1.很棒的iOS加载动画. github网址:https://github.com/NghiaTranUIT/FeSpinner 游老师的译文blog:http://www.cnblogs ...

  7. 30 个很棒的 PHP 开源 CMS 内容管理系统

    本文汇集了30个优秀的开源CMS建站系统,采用PHP开发.以下列表不分先后顺序. 1. AdaptCMS AdaptCMS Lite 是一个开源的CMS系统,主要特点是易用,而且可以轻松和其他系统接驳 ...

  8. 21个很棒的jQuery分页插件下载

    分页是指将一个大内容划分为各种不同的页面,因此网站的分页是一个很重要的部分,必须让内容有组织性和易于访问.分页有各两种不同的方式,手动跟自动.最受欢迎简单和广泛的方法是jQuery插件.下面我们收集了 ...

  9. 50个很棒的Python模块

    50个很棒的Python模块 我很喜欢Python,Python具有强大的扩展能力,我列出了50个很棒的Python模块,包含几乎所有的需要:比如Databases,GUIs,Images, Soun ...

  10. 20+个很棒的Android开源项目

    20+个很棒的Android开源项目 本文摘自文章: 20+ Awesome Open-Source Android Apps To Boost Your Development Skills. 考虑 ...

随机推荐

  1. 30 个 php 操作 redis 常用方法代码例子

    这篇文章主要介绍了 30 个 php 操作 redis 常用方法代码例子 , 本文其实不止 30 个方法 , 可以操作 string 类型. list 类型和 set 类型的数据 , 需要的朋友可以参 ...

  2. Python学习笔记:07异常

    异常 Python用异常对象(Exception Object)来表示异常情况,当异常未被捕获时,就会产生回溯(Traceback) 异常分类 內建异常类:Exception,AttributeErr ...

  3. __file__ __name__ __doc__ argv详解

    __file__:表示输出当前py文件的路径 __name__: 表示输出当前函数名称,是main()函数(入口函数),或者是其他函数 __doc__: 模块的对象,输出模块的版权信息,如:作者 ch ...

  4. Linux文本操作三大利器总结:sed、awk、grep

    grep:(去除一行中需要的信息,同类与cut) grep全称是Global Regular Expression Print #常规用法 # grep -n root /etc/passwd :ro ...

  5. laravel框架——路由

    基本路由: Route::get('/', function () { return view('welcome'); }); Route::post('/', function () { retur ...

  6. Linux前传——今天的学习

    感觉每天早上搞一个C语言的趣味题,很不错,算是比较实际的事情了.而且,好多都不会,主要是算法,也有很多语法不知道,这样补强很有用.嵌入式方面的课题进展有条不紊,感觉相关寄存器和I/O的使用必须通过大量 ...

  7. forever 使用

    安装: $npm install -g forever y@y:ydkt$ forever start server/app.js warn: --minUptime not set. Default ...

  8. 【Android实战开发】3G技术和Android发展简介

    随着移动设备的不断普及和发展,相关软件的开发也越来越受到人们的关注,其中要提及的就是Android开发.本系列博客主要为大家介绍Android的开发,可能会有人问:现在互联网上已经有很多的Androi ...

  9. ISO7816协商模式和特定模式

    ISO7816协议的协商模式和特定模式好多使用者都搞不明白,还经常有客户电话询问,这里将其澄清一下: ISO7816协议的协商模式和特定模式由复位应答字节TA2确定,下面是TA2的字节定义 TA2的存 ...

  10. Keil C51总线外设操作问题的深入分析

    阅读了<单片机与嵌入式系统应用>2005年第10期杂志<经验交流>栏目的一篇文章<Keil C51对同一端口的连续读取方法>(原文)后,笔者认为该文并未就此问题进行 ...