新手请教各位前辈,急急急急急急~~快来看看

zheng192004 2010-11-04 03:47:45
我们公司是做邮件系统开发的,现在要改一个功能,有一个个人通讯录功能,里面可以分组,比如,a组、b组,现在要实现的功能是 b组可以添加a组的联系人,a组也可以添加b组的联系人,但是a组里面的联系人不能重复,b组也不能重复~
不知道我描述的大家能看懂不?我不知道改怎么去判断
public boolean addPsn(AddrPsn addrPsn) throws WpxServiceException {
if (addrPsn.getOwner() == null)
addrPsn.setOwner(user.toEmail());
try {
// Get Pinyin of Psn
if (addrPsn.getSpell() == null) {
String spell = Charset.utf8ToPinyin(addrPsn.getDisplayName());
addrPsn.setSpell(spell);
}
// addDao(addrPsn);
DaoAttrSet das = new DaoAttrSet();
das.put("displayName", addrPsn.getDisplayName().toLowerCase());
das.put("mail", addrPsn.getMail());
das.put("owner", addrPsn.getOwner());
addrPsn.setDisplayName(addrPsn.getDisplayName().toLowerCase());
addrPsn.setMail(addrPsn.getMail());
addrPsn.setOwner(addrPsn.getOwner());
if (getDaosList(AddrPsn.class, das).size() == 0) {
addDao(addrPsn);
return true;
} else
return false;
} catch (Exception e) {
throw new WpxServiceException(e);
}
}


这是jsp页面
<%
boolean isJson = true;
String str = request.getParameter("isJson");
String item = request.getParameter("item");
if(str!=null&&!str.equals("null")&&!str.equals("true")) isJson = false;
try {
String str2 = request.getParameter("comeGo");
AddrPsn ap = (AddrPsn) HttpRequestTools.getDao(AddrPsn.class, request, "UTF-8");
ap.setDisplayName(new String(request.getParameter("displayname").getBytes("ISO-8859-1"),"UTF-8"));
ap.setGivenName(request.getParameter("givenName"));
ap.setPhysicalDeliveryOfficeName(request.getParameter("physicaldeliveryofficename"));
ap.setFacsimiletelephonenumber(request.getParameter("facsimiletelephonenumber"));
if(null!=str2 && !str2.equals(""))
ap.setComeGo("1");
else
ap.setComeGo("0");
if(addrService.addPsn(ap)==false){
out.println(DNAJson.getResFalseJSONString("联系人已经存在!"));
//a组里有的联系人在b组里添加不了,因为报已经存在
}else{
if(isJson)
out.println(DNAJson.getResJSONString(ap));
else{
if(item==null)
out.println("<script>parent.alert('添加成功!');if(parent.g && parent.g.addToCPopWin) parent.g.addToCPopWin.closeWin(); else if(parent.addToCPopWin) parent.addToCPopWin.closeWin(); </script>");
else
out.println("<script>parent.alert('添加成功!');if(parent.g && parent.g.addToCPopWin" + item.toString() +") parent.g.addToCPopWin" + item.toString() +".closeWin(); else if(parent.addToCPopWin" + item.toString() +") parent.addToCPopWin" + item.toString() +".closeWin(); </script>");
}
}
} catch (Exception e) {
if(isJson)
out.println(DNAJson.getResJSONString(e));
else
out.println("<script>document.write(\"<span style='font-size:12px;margin-top:20px;'>" + e + "</span>\");</script>");
}

%>
...全文
162 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zheng192004 2010-11-05
  • 打赏
  • 举报
回复
解决了,结贴~~~
NewMoons 2010-11-04
  • 打赏
  • 举报
回复
你的问题问的太模糊了,而且这个问题复杂吗?应该很简单吧
建议判断重复不要在前台做,应该通过sql语句判断
你的表里肯定有张组和联系人对应的表,假如为group吧,类似:
groupId userId
a 001
a 003
b 002
b 004
假如组的键值为groupId,联系人的键值为userId
判断重复,不就是
select count(*) from group where groupId=a and userId='001';
如果dao层得到count(*) > 0 不就重复了吗?
当然,如果你的表结构不是上述情况,或者非要把所有数据取到前台去判断,那另当别论了。
个人观点,能在数据库级解决的问题尽量在数据库解决,这样效率高,除非你必须拆分业务(这个说来话长,不聊了)。
shanxmxj 2010-11-04
  • 打赏
  • 举报
回复
添加前用登录名去判断一下这个组里是不是已经存在
shanxmxj 2010-11-04
  • 打赏
  • 举报
回复
那同名同姓的 你怎么去区别呢?
xuyang840117 2010-11-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kebin0001 的回复:]
儲存的地方用 Set 就可以避免重複了。
[/Quote]

你别慌,别着急,参考这个 自己冷静下 自己好好想想 别总依靠别人给你现成的
zheng192004 2010-11-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kebin0001 的回复:]
儲存的地方用 Set 就可以避免重複了。
[/Quote]我要的功能是本组里面不能重复,但是组跟组可以有相同的,比如a组里有zza,b组里也可以有,但是a组里只能有一个zza
kebin0001 2010-11-04
  • 打赏
  • 举报
回复
儲存的地方用 Set 就可以避免重複了。
zheng192004 2010-11-04
  • 打赏
  • 举报
回复
怎么还是没人呢?哇~快沉了~~~
zheng192004 2010-11-04
  • 打赏
  • 举报
回复
自己先顶一下,前辈们快出来吧~

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧