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. 考虑 ...
随机推荐
- 柯里化(Curing)
柯里化:把接受多个参数的函数变换成接受单个参数的函数,并且返回准备接受余下参数,还能返回结果的一种技术. function currying(fn){ var args = Array.prototy ...
- hdu 4548 第六周H题(美素数)
第六周H题 - 数论,晒素数 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u De ...
- UVA - 1153 Keep the Customer Satisfied(贪心)
UVA - 1153 Keep the Customer Satisfied Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: ...
- spinner 下拉框控件
spinnerMode=dropdown时,为下拉模式spinnerMode=dialog时,会在界面中间弹出Android:popupBackground=”#f0000000”,可以去除spinn ...
- maven学习心得
心得:这几天一直在研究maven的配置,还真是伤心啊,网上资料不多,而且问题不断.确实很让人头疼 背景:之所以学习maven是因为我们需要一键部署,我们项目是已经差不多完成了,是eclipse的web ...
- fpdf使用標楷體
<? require('chinese-unicode.php'); $pdf=new PDF_Unicode(); $pdf->Open(); $pdf->AddPage(); $ ...
- haskell 开发环境配置
haskell是一门通用函数式语言,几乎可以进行任何种类的开发,包括命令行,GUI,数据库,Web.源代码可以跨平台: Linux,Mac, Windows, FreeBSD 等. haskell特点 ...
- LD1-B(最短路径-SPFA)
题目链接 /* *题目大意: *给定v个点的重量,并给定e条边,每条边具有一个权值; *在e条边中选v-1条边使这v个点成为一棵树; *定义这棵树的代价为(每棵子树节点重量和其子树根到父节点的边的权值 ...
- HDU4536 XCOM Enemy Unknown(dfs)
题目链接. 分析: 用dfs枚举每一波攻击的三个国家. 很暴力,但没想到0ms. #include <iostream> #include <cstdio> #include ...
- 【动态规划】XMU 1028 Game Boy Advance
题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1028 题目大意: 求01背包最优解的方案.物件数和物件编号. 题目思路: [动态规划] ...