Spring.net--很棒的事务处理
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--很棒的事务处理的更多相关文章
- Spring Boot 揭秘与实战(四) 配置文件篇 - 有哪些很棒的特性
文章目录 1. 使用属性文件2. YAML文件 1.1. 自定义属性 1.2. 参数引用 1.3. 随机数属性 1.4. application-{profile}.properties参数加载 3. ...
- EasyDropDown – 很棒的下拉菜单,含精美主题
EasyDropDown 是一个 jQuery 插件,你可以毫不费力地将简陋的 Select 元素设置为可定制风格的下拉菜单,用于表单或者一般的导航.和著名的下拉插件 Chosen 很像,但是具有自己 ...
- 优秀工具推荐:两款很棒的 HTML5 游戏开发工具
HTML5 众多强大特性让我们不需要多么高深技术就能创建好玩的网页游戏,同时证明了开放的 Web 技术能与任何其他在游戏开发中使用的技术竞争.正如标题所说,这篇文章推荐的几款很棒 HTML5 游戏开发 ...
- 10个很棒的学习Android 开发的网站(转)
看到江湖旅人 写的<10个很棒的学习iOS开发的网站 - 简书>,所以就忍不住写Android 啦,也希望对大家有帮助.我推荐的网站,都是我在学习Android 开发过程中发现的好网站,给 ...
- 推荐几款很棒的 JavaScript 表单美化和验证插件
表单元素让人爱恨交加.作为网页最重要的组成部分,表单几乎无处不在,从简单的邮件订阅.登陆注册到复杂的需要多页填写的信息提交功能,表单都让开发者花费了大量的时间和精力去处理,以期实现好用又漂亮的表单功能 ...
- IOS学习资源收集--关于动画的代码学习资源总汇(很棒的动画效果哦)
目录大纲: 1.很棒的iOS加载动画. github网址:https://github.com/NghiaTranUIT/FeSpinner 游老师的译文blog:http://www.cnblogs ...
- 30 个很棒的 PHP 开源 CMS 内容管理系统
本文汇集了30个优秀的开源CMS建站系统,采用PHP开发.以下列表不分先后顺序. 1. AdaptCMS AdaptCMS Lite 是一个开源的CMS系统,主要特点是易用,而且可以轻松和其他系统接驳 ...
- 21个很棒的jQuery分页插件下载
分页是指将一个大内容划分为各种不同的页面,因此网站的分页是一个很重要的部分,必须让内容有组织性和易于访问.分页有各两种不同的方式,手动跟自动.最受欢迎简单和广泛的方法是jQuery插件.下面我们收集了 ...
- 50个很棒的Python模块
50个很棒的Python模块 我很喜欢Python,Python具有强大的扩展能力,我列出了50个很棒的Python模块,包含几乎所有的需要:比如Databases,GUIs,Images, Soun ...
- 20+个很棒的Android开源项目
20+个很棒的Android开源项目 本文摘自文章: 20+ Awesome Open-Source Android Apps To Boost Your Development Skills. 考虑 ...
随机推荐
- 30 个 php 操作 redis 常用方法代码例子
这篇文章主要介绍了 30 个 php 操作 redis 常用方法代码例子 , 本文其实不止 30 个方法 , 可以操作 string 类型. list 类型和 set 类型的数据 , 需要的朋友可以参 ...
- Python学习笔记:07异常
异常 Python用异常对象(Exception Object)来表示异常情况,当异常未被捕获时,就会产生回溯(Traceback) 异常分类 內建异常类:Exception,AttributeErr ...
- __file__ __name__ __doc__ argv详解
__file__:表示输出当前py文件的路径 __name__: 表示输出当前函数名称,是main()函数(入口函数),或者是其他函数 __doc__: 模块的对象,输出模块的版权信息,如:作者 ch ...
- Linux文本操作三大利器总结:sed、awk、grep
grep:(去除一行中需要的信息,同类与cut) grep全称是Global Regular Expression Print #常规用法 # grep -n root /etc/passwd :ro ...
- laravel框架——路由
基本路由: Route::get('/', function () { return view('welcome'); }); Route::post('/', function () { retur ...
- Linux前传——今天的学习
感觉每天早上搞一个C语言的趣味题,很不错,算是比较实际的事情了.而且,好多都不会,主要是算法,也有很多语法不知道,这样补强很有用.嵌入式方面的课题进展有条不紊,感觉相关寄存器和I/O的使用必须通过大量 ...
- forever 使用
安装: $npm install -g forever y@y:ydkt$ forever start server/app.js warn: --minUptime not set. Default ...
- 【Android实战开发】3G技术和Android发展简介
随着移动设备的不断普及和发展,相关软件的开发也越来越受到人们的关注,其中要提及的就是Android开发.本系列博客主要为大家介绍Android的开发,可能会有人问:现在互联网上已经有很多的Androi ...
- ISO7816协商模式和特定模式
ISO7816协议的协商模式和特定模式好多使用者都搞不明白,还经常有客户电话询问,这里将其澄清一下: ISO7816协议的协商模式和特定模式由复位应答字节TA2确定,下面是TA2的字节定义 TA2的存 ...
- Keil C51总线外设操作问题的深入分析
阅读了<单片机与嵌入式系统应用>2005年第10期杂志<经验交流>栏目的一篇文章<Keil C51对同一端口的连续读取方法>(原文)后,笔者认为该文并未就此问题进行 ...