请问各路高手,下面代码会不会引起脏读,幻像读

 请问大家一个问题:
  Java或c#语言中,同一个方法中123共有三处执行数据库操作,按字母顺序排列,并且处于同一事务,事务是由框架来处理,1是insert,2是sele,3是update 操作。
A)目的:1插入记录后,2进行查询1插入的数据,通过3对业务数据进行更新。

B)结果:1插入成功了,2没有查询到1插入的数据返回0,以至3未能将1处的数据更新到数据库而更新为0? 

C)问题:为什么1插入成功了,2没有查询到? 除了网络原因还有什么原因?若是网络因为那又在什么特殊情况下才发生?Java执行按123顺序,而在执行过程中,1插入的速度比2查询的速度要慢,而时间又要得久些,这种问题会存在吗?
D)代码:
下面代码会不会引起脏读,幻像读?
public void saveByList(String fphm, List<XiaoMaDanMx> list,
   ShuiLuZhuangXieJiHuaManager slzxJiHuaManager,VmtclcmzManager vxmdManager) {
  XiaoMaDanMxExample example = new XiaoMaDanMxExample();
  example.createCriteria().andFPHMEqualTo(fphm);
  this.xiaoMaDanMxDAOImpl.deleteByExample(example);

  for (XiaoMaDanMx auth : list) {   
   this.xiaoMaDanMxDAOImpl.insert(auth);//注释:这里是第一处插入 
  
   HashMap<String,String> zxjhd_map = new HashMap<String,String>();
   zxjhd_map.put("zxjhdfph", auth.getZXDPH());
   zxjhd_map.put("zxjhdfphm",auth.getZXDH());
   HashMap<String,BigDecimal> vzxjhd_map = vxmdManager.getSlokAndSl2ok(zxjhd_map);//注释:这里是第二处查询 
   System.out.println("查询水陆装卸计划单:  p1:"+vzxjhd_map.get("SL1") +"  p2: "+ vzxjhd_map.get("SL1")+" ph: "+auth.getZXDPH()+"  fphm "+auth.getZXDH());
   HashMap map = new HashMap();
   map.put("p1", vzxjhd_map.get("SL1"));
   map.put("p2", vzxjhd_map.get("SL2"));
   map.put("ph", auth.getZXDPH());
   map.put("fphm",auth.getZXDH());
   slzxJiHuaManager.UpdateSlAndZlByPHAndFphm(map);//注释:这里是第三处更新
   
   HashMap<String,String> mtzytb_map = new HashMap<String,String>();
   mtzytb_map.put("mtzytbfphm", auth.getZXTZDH());
   mtzytb_map.put("mtzytbph",auth.getZXTZDPH());
   HashMap<String,BigDecimal> vmtzytb_map = vxmdManager.getSlokAndSl2ok(mtzytb_map);
   System.out.println("查询码头作业单填报:  p1:"+vmtzytb_map.get("SL1") +"  p2: "+ vmtzytb_map.get("SL2")+" ph: "+auth.getZXTZDH()+"  fphm "+auth.getZXTZDPH());
   
  
   HashMap tb_map = new HashMap();
   tb_map.put("p1", vmtzytb_map.get("SL1"));
   tb_map.put("p2", vmtzytb_map.get("SL2"));
   tb_map.put("fphm", auth.getZXTZDH());
   tb_map.put("ph",auth.getZXTZDPH());
   this.mtzxzydtbManager.UpdateSlAndZlByPHAndFphm(tb_map);

  }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值