03-书架放书法则

前端之家收集整理的这篇文章主要介绍了03-书架放书法则前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

背景:

同一张表中不能有重复的名称添加时光标失焦文本框Ajax判断,查一下数据库是否有这个名称即可。

进行修改时,如何判断呢?要是还是按照添加验证方式判断,我直接失焦,也会提示重复。

解决方案:书架放书法则(针对修改流程模拟)

假如一个书架放不同名称的书籍,书和书架都有书名称、位置信息,(首图)假如我拿了一本书,再放一本回原位的时候:

1.书籍名称与书架上其他任意一个不同,可以放回,不会重复。(放新书)

2.书籍名称与书架上其他任意一个相同,如果原书放回,不重复,书籍的标记位置与书架标记位置不同,则重复。(放已有书名的书)




结论:对于修改,放新书可以;

放已有书名的书,必须放回原位,位置不同则重复。




/**
	 *@Title:checkGroupsNameExsis
	 *@Description:检测群组名称是否存在
	 *@param memGroupsDTO会员群组数据传输实体类
	 *@Return:boolean返回布尔类型值,存在返回true,不存在返回false
	 *@author:徐凯强
	 *@Date:2014-8-26下午08:00:12
	 */
	public boolean checkGroupsNameExsis(MemGroupsDTO memGroupsDTO,String method) {
		StringBuilder sb = new StringBuilder(" from MemGroups o where 1=1 ");
		boolean flag = false;
		/** 查找数据库中是否有这个名称 **/
		sb.append(" and o.groupName='" + memGroupsDTO.getGroupName() + "'");
		List<MemGroups> memList = em.createQuery(sb.toString()).getResultList();
		/** 如果添加方法,有一条数据,表示重复,true表示重复,false表示不重复 */
		if (method.equals("addSave")) {
			if (memList.size() > 0) {
				flag = true;
			} else {
				flag = false;
			}
		} else {
			/** 如果是修改方法,编号也相同表示不重复,编号不同不重复 */
			if (memList.size() > 0) {
				if (memList.get(0).getGroupId().equals(memGroupsDTO.getGroupId())) {//放旧书,放原位
					flag = false;
				} else {
					flag = true;
				}
			} else {
				flag = false;//放新书
			}
		}
		return flag;
	}

猜你在找的Ajax相关文章