注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

无线时代辐射无穷

抓紧生宝宝,小心辐射

 
 
 

日志

 
 

java编程重构代码问题汇总(未完待续)  

2009-12-08 15:23:15|  分类: java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

最近一个项目,由于参与的人比较多,经手的人非常多,代码问题非常多,原来在修改和重构时并没有做总结,以后决定在这里做些总结,帮助自己,也帮助他人。欢迎大家参与讨论。
1、查询时能确定是只需要处理第一个对象么?
 public void logicDelById(Long id)
 {
  TbAlbumArticleComm tbAlbumArticleComm = this.findById(id);
  if (tbAlbumArticleComm.getIsBackup() == 0l)
  {
   List<TbAlbumArticleComm> list = this.findByIsBackup(1l);
   if (list != null)
   {
    TbAlbumArticleComm tbAlbumArticleCommInfo = new TbAlbumArticleComm();
    tbAlbumArticleCommInfo = list.get(0);//  如果是采用查询清单的第一个对象,采用uniqueResult方式返回结果
    tbAlbumArticleCommInfo.setIsBackup(0l);
    this.merge(tbAlbumArticleCommInfo);
   }
  }
  tbAlbumArticleComm.setIsDel(1l);
  this.merge(tbAlbumArticleComm);
 }
 这个例子,可以修改findByIsBackup方法,让返回一个uniqueResult对象,这样查询效率也能提高。
  
2、为什么要使用Set类型返回?
 public Set<TbAlbumArticleComm> tbAlbumArticleCommsByTbCommendPlaceId(String tbCommenPlaceId)
 {
  Object[] values = { tbCommenPlaceId };
  List<TbAlbumArticleComm> list = this.findByQueryStringValues(FIND_BY_TBCOMMENDPLACEID, values);
  Iterator it = list.iterator();
  Set<TbAlbumArticleComm> tbAlbumArticleComms = new HashSet<TbAlbumArticleComm>();
  while (it.hasNext())
  {
   TbAlbumArticleComm tbAlbumArticleComm = new TbAlbumArticleComm();
   tbAlbumArticleComm = (TbAlbumArticleComm) it.next();
   tbAlbumArticleComms.add(tbAlbumArticleComm);
  }
  return tbAlbumArticleComms;
 }  
 
 一般来说,如果我们做数据库查询,数据库本身有主键等,重复数据可能性比较小,另外一般都会有排序的要求,所以尽量不用Set结果集,而用List结果集返回。
 
 
 
 
 
 
 

  评论这张
 
阅读(412)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017