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. localstorage || globalStorage || userData

    globalStorage 这个也是html5中提出来,在浏览器关闭以后,使用globalStorage存储的信息仍能够保留下来,并且存储容量比IE的userdata大得多,一个域下面是5120k.和 ...

  2. Firefox--Date.parse()

    比较两个时间字符串的时间大小用到了Date.parse()这个静态方法. 火狐下:Date.parse("2014-07-05 22:05:05") 返回的是NaN. 其它浏览器: ...

  3. poj2255 (二叉树遍历)

    poj2255 二叉树遍历 Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu   Descripti ...

  4. java.util.concurrent并发包诸类概览

    java.util.concurrent包的类都来自于JSR-166:Concurrent Utilities,官方的描述叫做“The JSR proposes a set of medium-lev ...

  5. Vim记录

    Command Mode下: . 代表当前行 % 代表所有行 $ 代表结束行 :1,$normal i#     全部行前加#,同下 :%normal i# :read ! cd /usr/bin/; ...

  6. 关于windows service不能访问网络共享盘(NetWork Drive)的解决方案

    我映射一个网络驱动器到本机的时候,发现本机的程序直接能访问读取网络驱动器,但是把本机的程序作为本机的windows服务运行的时候就不能访问了. Qt中的QDir::exist(folder)访问失败. ...

  7. 【HDOJ】1274 展开字符串

    栈的应用,需要注意括号前可能没有数字的情况. #include <cstdio> #include <cstring> #include <cstdlib> #in ...

  8. delphi 自定义消息

    delphi 自定义消息     消息描述 Tmsg是   Windows系统用来记录描述一个具体的windows消息的.就是windows   用于封装应用程序及系统程序发生的消息,它是操作系统使用 ...

  9. Number of 1 Bits——LeetCode

    Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also know ...

  10. 关于echo `git branch | grep \*`

    本来想返回一个git当前的分支.但会将这个文件夹下的所有目录与分支一起输出. 原因是  echo `git branch | grep \*`  等价于   echo * master  , 而  e ...