`

多个对象的某个字段多选的增加删除

 
阅读更多
public void getAddAwardList(){
		
		model.setFisrtRow((model.getPage() - 1) * model.getRows());
		
		model.setLastRow(model.getRows());
		
		try {
			BaseDao dao=getDao();
			
			List<YouthModel> list = dao.selectForList("youth.getAddAwardList", model);
			HashMap<String ,Object> hm = new HashMap<String ,Object>();
			hm.put("total", dao.selectByCount("youth.getListCount", model));
			hm.put("rows", list);
			hm.put("success", true);
			this.doResponseWithJson(hm);
		} catch (Exception e) {
			e.printStackTrace();
			this.setData("操作失败");
			this.setSuccess(false);
			this.send();
		}
		
	}
	
/**
 * 
 * @param sqlString 传进来的是以逗号分隔的字符串如:1,2,3
 * @param modelString 传进来是model中的单个字符串,如:4
 * @return
 */
	private String removeSameValue(String sqlString, String modelString) {
		if (StringUtil.isEmpty(sqlString)) {
			return modelString;
		}
		String[] t = sqlString.split(",");

		TreeSet<String> tSet = new TreeSet<String>();
		for (int i = 0; i < t.length; i++) {
			tSet.add(t[i]);
		}
		tSet.add(modelString);
		String s = "";
		for (Iterator<String> it = tSet.iterator(); it.hasNext();) {

			s += it.next().toString() + ",";
		}
		s = s.substring(0, s.length() - 1);

		return s;
	}
	 

public void addAwardConfig(){
		
		try {
			BaseDao dao=getDao();
			//从界面获得所有需要的青年id
			String id = model.getId();
			//用in 查找出()所有id的信息  select * from ybc_youth where id in ($VALUE$)
			List<YouthModel>  retModel = dao.selectForList("youth.getAddAward", id);
			//实例青年
			YouthModel tModel = new YouthModel();
			//创建青年list
			List<YouthModel> sqlModelList = new ArrayList<YouthModel>();
			//遍历青年,得到去重后的奖项id
			for (int i=0; i<retModel.size(); i++) {
				//将数据库信息赋给实例
				tModel = retModel.get(i);
				//数据库的奖项id和界面的到的奖项id去重
				tModel.setYouthAward(this.removeSameValue(tModel.getYouthAward(), model.getYouthAward()));
				//将得到的奖项id放入list
				sqlModelList.add(tModel);
			}
			//批量更新
			dao.updateSql("youth.upt_youth", sqlModelList);
			
			this.setData("青年奖增加项配置成功");
			this.setSuccess(true);
			this.send();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			this.setData("青年奖项增加配置失败,错误信息:"+e.getMessage());
			this.setSuccess(false);
			this.send();
		}
	}

//减掉重复项
private String removeList(String sqlString,String modelString){
	
	String[] sqlStr = sqlString.split(",");
	String[] modelStr = modelString.split(",");
	
	List<String> listA= java.util.Arrays.asList(sqlStr);
	List<String> listB= java.util.Arrays.asList(modelStr);
	
	Set setA = new TreeSet(listA);
	setA.removeAll(listB);		
	System.out.println(setA);
	
	String s = "";
	for (Iterator<String> it = setA.iterator(); it.hasNext();) {
		s += it.next().toString() + ",";
	}
	s = s.substring(0, s.length() - 1);
	return s;
}


public void removeAwardConfig(){
	try{
		BaseDao dao=getDao();
		
		String id =model.getId();
		List<YouthModel>  retModel = dao.selectForList("youth.getAddAward", id);
			System.out.println(retModel.size());
		YouthModel tModel = new YouthModel();
		List<YouthModel> sqlModelList = new ArrayList<YouthModel>();
		
		for (int i=0; i<retModel.size(); i++) {
			//将数据库信息赋给实例
			tModel = retModel.get(i);
			//数据库的奖项id和界面的到的奖项id去重
			tModel.setYouthAward(this.removeList(tModel.getYouthAward(), model.getYouthAward())); 
			//将得到的奖项id放入list
			sqlModelList.add(tModel);
		}
		dao.updateSql("youth.upt_youth", sqlModelList);
		
		this.setData("青年奖项删除配置成功");
		this.setSuccess(true);
		this.send();
	}catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		this.setData("青年奖项配置删除失败,错误信息:"+e.getMessage());
		this.setSuccess(false);
		this.send();
	}
}

 

分享到:
评论

相关推荐

    2021-2022计算机二级等级考试试题及答案No.1264.docx

    - **知识点**: 在Access数据库中,为了确保某个字段的值不会重复,从而便于数据索引和查找,可以通过设置该字段为主键的方式来实现。 - **解析**: - **选项A**:“索引”虽然也可以帮助提高查询效率,但它并不强制...

    金蝶K3 10.4BOS插件开发手册

    `K3ClassEvents`对象提供了对多个核心业务对象的封装,包括`ListEvents`、`BaseClassEvent`和`BillEvent`等,每个对象都有其独特的功能和适用场景。 1. **ListEvents对象**: - **DataSrv属性**:用于获取或设置...

    Javascript 弹出式复选框 (JQuery 插件 mulitselector).zip

    2. **多选功能**:用户可以在弹出窗口中选择多个选项,这些选择会被记录并显示在触发元素旁边。 3. **可配置性**:插件应提供配置选项,允许开发者自定义颜色、字体、大小等视觉样式,以及行为如默认选中项、最大可...

    2021-2022计算机二级等级考试试题及答案No.19552.docx

    8. **删除查询**:删除查询可以删除一个或多个表中的记录,并且删除的操作是不可逆的,不能简单地通过"撤销"命令恢复。 9. **字符判断**:在C语言中,判断字符变量`c`是否为小写字母的表达式应该是`(c &gt;= 'a') && ...

    2021-2022计算机二级等级考试试题及答案No.2722.docx

    - `1`:简单多选,即用户可以使用鼠标选择多个项目。 - `2`:扩展多选,即用户可以使用鼠标加 `Ctrl` 键或 `Shift` 键进行多项选择。 **正确答案**:C. 2 ### 3. 函数类型的识别 - **BOF()**:返回布尔值,...

    Excel VBA实用技巧大全 附书源码

    04052引用多个非连续单元格区域的集合(Union方法) 04053引用多个非连续单元格区域的集合(循环处理) 04054引用多个单元格区域的交叉区域 04055获取计算公式的所有引用单元格 04056获取计算公式中引用的其他工作表...

    2021-2022计算机二级等级考试试题及答案No.10238.docx

    - 在Java等面向对象编程语言中,一个接口确实可以继承多个父接口。这是实现多继承的一种方式。 ### 9. 软件特性 **题目**: 下面对软件特点描述错误的是? **正确答案**: 软件在使用中存在磨损、老化问题 **解析*...

    VB小程序数据录入

    综上所述,VB小程序数据录入涉及多个层面,从用户界面设计、数据验证到数据库操作和打印功能实现,每个环节都需要细致考虑和精心设计。对于初学者来说,理解并掌握这些知识点是构建合格证打印系统的关键。通过不断的...

    2021-2022计算机二级等级考试试题及答案No.12727.docx

    - **接口与实现**: Java中虽然限制了一个类只能继承一个父类,但一个类可以实现多个接口。接口是一种完全抽象的类,只包含常量和抽象方法。 - **接口继承**: 接口之间支持多重继承,即一个接口可以继承多个其他接口...

    Hibernate笔试题加答案

    - **B)** 记录对应对象:这是不正确的,应该是一个记录对应一个对象实例。 - **C)** 表的字段对应类的属性:这是正确的,表中的每一列通常映射为类中的一个属性。 - **D)** 表之间的参考关系对应类之间的依赖关系:...

    2021-2022计算机二级等级考试试题及答案No.1864.docx

    - **候选关键字**:一个表可以有多个候选关键字,只要它们都能唯一标识表中的每一行记录。 - **超关键字**:超关键字是指任何可以唯一标识表中一行记录的字段或字段组合。 - **外部关键字**:外部关键字是另一个...

    2021-2022计算机二级等级考试试题及答案No.1474.docx

    1. SQL语句插入数据:在SQL中,如果在插入数据时没有指定某个字段,而该字段有默认值,那么在插入时会使用默认值。因此,对于student表,当执行`INSERT INTO student(sex, sname, age) VALUES("M","Lili",)`,由于...

    2021-2022计算机二级等级考试试题及答案No.1194.docx

    - **组合框/列表框**:可以显示多个选项,并允许用户从中选择一项或多选(列表框)。 #### 3. 数据视图描述 - **外模式**:描述单个用户使用的数据视图,即用户所见到的数据视图。 - **概念模式**:数据库的整体...

    Metasys系统操作手册v1.0.pdf

    - **介绍**:全局命令允许用户一次性对多个对象执行相同的操作。 - **全局命令的概念**:一种高效的操作方式,特别是在处理大量数据时非常有用。 - **全局命令对话框**:用户可以在其中选择对象并指定要执行的命令。...

    2016信息工程Web开发技术复习概要Word版.docx

    - 使用`RangeValidator`控件来验证某个值是否在特定范围内。 #### 24. 页面重定向 - 可以使用`Response.Redirect`方法将用户引导到另一个页面。 #### 25. 输出信息 - 使用`Response.Write`或`Response.Output....

    2021-2022计算机二级等级考试试题及答案No.1088.docx

    - **解析**: 删除表中的某个字段需要使用`ALTER TABLE`加上`DROP column`语法。因此,正确的SQL语句为 `ALTER table 教师 DROP 照片`。 #### 3. 设置控件字体属性 - **知识点**: 在图形用户界面(GUI)编程中,通常...

    2021-2022计算机二级等级考试试题及答案No.4985.docx

    - **解析**: 在SQL查询语句中,可以使用`=`操作符结合逻辑运算符`Or`(或)来组合多个条件,用于筛选满足特定条件的记录。 #### 26. 控件光标控制 - **知识点**: 为了防止用户将光标置于控件之上,可以设置控件的`...

Global site tag (gtag.js) - Google Analytics