記錄一次師父用的反射

這個呢,其實可以直接根據id 進行刪除的。但是師父用了 反射,我也是第一次在實際項目中碰到。
感覺很新鮮。不過需要把Mapper中方法的名字告訴前端。具體師父爲什麼這樣做,我想是 因爲這個裏面有特別多的刪除。
全部做好,直接把方法明告訴前端就好。類似這種:
http://localhost:8080/xxxxxcrm/sand/asynDelete.do?method=deleteBaseInfo&rowId=1@40687453
method: deleteBaseInfo : 刪除基礎信息
deleteWorkContent : 刪除工作內容
deleteArea : 刪除省市區縣客戶沙盤
deleteProvince : 刪除全省生態沙盤
deletePurchased : 刪除採購歷史
rowId : 記錄Id
,這樣看起來確實非常方便!簡單明瞭。不過我很難想到這種寫法。

//刪除
@RequestMapping("/asynDelete.do")
@ResponseBody
public  String asynDelete(String method , String rowId) throws Exception{
	try{
	if(StringUtils.isBlank(rowId)){ throw new ExceptionWithCode("0008");}
		Class<? extends SandTableMapper> clazz = mapper.getClass();
		clazz.getMethod(method,String.class).invoke(mapper,rowId);
		return StringUtils.resultSuccessToJson(rowId);
	}catch(Exception e){
		return StringUtils.resultFailToJson(e);
	}
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章