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. 考虑 ...
随机推荐
- 鼠标划过图片title 提示实现
鼠标划过图片title 提示实现 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
- Scut:通用配置管理器
1. 配置节 ConfigSection private List<ConfigNode> _configNodes; public class ConfigNode { public C ...
- 如何在一台机子上启动两个TOMCAT
同时启动两个tomcat设置,具体如下: 1.不要设置CATALINA_HOME 2.分别修改安装目录下的conf子目录中的server.xml文件: a.修改http访问端口为不同的端口,将8080 ...
- Chapter 7 Backup and Recovery 备份和恢复:
Chapter 7 Backup and Recovery 备份和恢复: Table of Contents 7.1 Backup and Recovery Types 7.2 Database Ba ...
- SparkContext自定义扩展textFiles,支持从多个目录中输入文本文件
需求 SparkContext自定义扩展textFiles,支持从多个目录中输入文本文件 扩展 class SparkContext(pyspark.SparkContext): def ...
- Sql语句中IN等方面的用法
select * from txt1 select * from txt2 select * from txt1 where name in (select name from txt2 where ...
- Delphi 多线程的操作
Delphi 操作多线程的代码, 在项目中需要在webservice中使用多线程,程序思想如下: 1.就创建一个线程, 也就是说有两个线程,主线程和创建的线程, 主线程用于程序的别的操作,例如停止服务 ...
- 下载doxygen
官网首页:http://www.stack.nl/~dimitri/doxygen/index.html 下载页面:http://www.stack.nl/~dimitri/doxygen/downl ...
- 解读sample5
说明 被测试代码文件 sample1.h.sample1.cc和sample3-inl.h 测试代码文件 sample5_unittest.cc 官网上如是描述sample5: Sample #5 i ...
- Java学习日记-2.2 增强后的switch-case
switch-case语句的基本格式 switch(expression){ case condition1: ... break; case condition2: ... break; case ...