欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

informix循环查询为何老是锁表,该怎么处理

更新时间: 2014-01-05 02:20:01 责任编辑: Author_N1

 

informix循环查询为何老是锁表
public void copyCardTemp(Map dataMap,String id) throws Exception {
  String idCondition = TbDpTemplate.TEMPLATE_ID.toSqlEQ(id);
  Map tempMap = BizDB.getOneRowAsMap(TbDpTemplate.TABLE, idCondition);
  Connection conn = BizDB.getConn() ;
try {
  //复制模板
String condition = TbDpTemplate.TEMPLATE_NO.toSqlEQ(dataMap.get(TbDpTemplate.TEMPLATE_NO.name));
Integer count = BizDB.getCount(TbDpTemplate.TABLE, condition);
if (count > 0)
  {
  throw new Exception("卡模板号已经存在");
}
long templateId = SequenceGen.getInstance().nextValue(TbDpTemplate.TABLE);
  dataMap.put(TbDpTemplate.TEMPLATE_ID.name, templateId);
  dataMap.put(TbDpTemplate.CREATE_DATE.name, new Date());
  dataMap.put(TbDpTemplate.BANK_ID.name, Constants.FLAG_PUBDATA_ORG);
  try
  {
  BizDB.insert(conn,TbDpTemplate.TABLE, dataMap);
  } catch (Exception e)
  {
  LogProcess.error(this.getClass(), "复制卡模板错误信息-" + e.getMessage());
  throw new Exception("卡模板复制出错:"+e.getMessage());
  }
  //复制模板对应的数据项
  try
  {
  //查出该模板对应的应用list
  String appList = tempMap.get(TbDpTemplate.APP_LIST.name).toString();
  String []listTemp = appList.split(",");
  for(int i=0;i<listTemp.length;i++)
  {
  //查数据项表中apptype对应该模板应用的所有记录
  String typeCondition = TbDpTempDateApp.APP_TYPE.toSqlEQ(listTemp[i]);
  String tempIdCondition = TbDpTempDateApp.TEMPLATE_ID.toSqlEQ(id);
  String addCondition = typeCondition+" and "+tempIdCondition;
  List itemList = BizDB.searchAsMapList(TbDpTempDateApp.TABLE, addCondition);
   
  for (Iterator iter = itemList.iterator(); iter.hasNext();)
  {
  long itemId = SequenceGen.getInstance().nextValue(TbDpTempDateApp.TABLE);
  //组装数据项map
  Map map = (Map) iter.next();
  Map newMap = new HashMap();
  //插入新数据项ID
  newMap.put(TbDpTempDateApp.APP_ITEM_ID.name, itemId);
  //插入当前所复制的应用类型编号
  newMap.put(TbDpTempDateApp.APP_TYPE.name, listTemp[i]);
  newMap.put(TbDpTempDateApp.APP_NAME.name, map.get(TbDpTempDateApp.APP_NAME.name).toString());
  newMap.put(TbDpTempDateApp.ITEM_TAG.name, map.get(TbDpTempDateApp.ITEM_TAG.name).toString());
  newMap.put(TbDpTempDateApp.ITEM_LEN.name, map.get(TbDpTempDateApp.ITEM_LEN.name).toString());
  newMap.put(TbDpTempDateApp.ITEM_VALUE.name, map.get(TbDpTempDateApp.ITEM_VALUE.name).toString());
  //插入新模板ID
  newMap.put(TbDpTempDateApp.TEMPLATE_ID.name, templateId);
  BizDB.insert(conn,TbDpTempDateApp.TABLE, newMap);
  }
  }
  } catch (Exception e)
  {
  LogProcess.error(this.getClass(), "数据项复制错误信息-" + e.getMessage());
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:20:01
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/8591/
本文WWW.DOC100.NET DOC100.NET版权所有。