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插入数据失败

 

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

 

 

  

转载于:https://www.cnblogs.com/meilibao/p/3472808.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值