请问大家一个问题:
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();
ateCriteria().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", ZXDPH());
zxjhd_map.put("zxjhdfphm",ZXDH());
HashMap<String,BigDecimal> vzxjhd_map = SlokAndSl2ok(zxjhd_map);//注释:这里是第二处查询
System.out.println("查询水陆装卸计划单: p1:"+("SL1") +" p2: "+ ("SL1")+" ph: "ZXDPH()+" fphm "ZXDH());
HashMap map = new HashMap();
map.put("p1", ("SL1"));
map.put("p2", ("SL2"));
map.put("ph", ZXDPH());
map.put("fphm",ZXDH());
slzxJiHuaManager.UpdateSlAndZlByPHAndFphm(map);//注释:这里是第三处更新
HashMap<String,String> mtzytb_map = new HashMap<String,String>();
mtzytb_map.put("mtzytbfphm", ZXTZDH());
mtzytb_map.put("mtzytbph",ZXTZDPH());
HashMap<String,BigDecimal> vmtzytb_map = SlokAndSl2ok(mtzytb_map);
System.out.println("查询码头作业单填报: p1:"+("SL1") +" p2: "+ ("SL2")+" ph: "ZXTZDH()+" fphm "ZXTZDPH());
HashMap tb_map = new HashMap();
tb_map.put("p1", ("SL1"));
tb_map.put("p2", ("SL2"));
tb_map.put("fphm", ZXTZDH());
tb_map.put("ph",ZXTZDPH());
dtbManager.UpdateSlAndZlByPHAndFphm(tb_map);
}
本文发布于:2024-01-29 09:40:30,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170649243314381.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |