這個版本,主要是迭代重載了下save方法,不廢話,直接上代碼:
/**
* 保存數(shù)據(jù),處理數(shù)據(jù)的增刪改
*
* @param paramData 前臺的參數(shù)
* @param dbData 后臺的數(shù)據(jù)
* @param clazz 前后臺參數(shù)對應(yīng)的class
* @param beanName spring bean服務(wù)實現(xiàn)類名稱 首字母轉(zhuǎn)小寫
* @return SUCCESS:操作成功
*/
String saveData(List<T> paramData, List<T> dbData, Class clazz,String beanName);
/**
* 重載saveData 自適應(yīng)找到對應(yīng)的clazz與beanName
*
* @param paramData
* @param dbData
* @return
*/
String saveData(List<T> paramData, List<T> dbData);
具體實現(xiàn)類對應(yīng)的重載方法如下:
@Override
public String saveData(List<T> paramData, List<T> dbData) {
if (CollectionUtils.isEmpty(paramData) && CollectionUtils.isEmpty(dbData)) {
throw new CustomException("入?yún)⑴c數(shù)據(jù)庫數(shù)據(jù)不能都為空");
}
Class clazz;
clazz = CollectionUtils.isNotEmpty(paramData) ? paramData.get(0).getClass() : dbData.get(0).getClass();
String name = clazz.getSimpleName();
char[] charArray = name.toCharArray();
charArray[0] += 32;
String possibleBeanName = String.valueOf(charArray) + "ServiceImpl";
String beanName = "";
String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames();
for (String beanDefinitionName : beanDefinitionNames) {
if (beanDefinitionName.indexOf(possibleBeanName) > -1) {
beanName = beanDefinitionName;
return saveData(paramData, dbData, clazz, beanName);
}
}
throw new CustomException("根據(jù)實體類" + name + "沒找到對應(yīng)的bean服務(wù)");
}
然后就是頭部加多了
implements ICudDataService<T>, ApplicationContextAware。
通過這個ApplicationContextAware獲取到所有bean服務(wù),膚淺地以實體類拼湊一下服務(wù)名,找到bean服務(wù)就作為這個調(diào)用的bean服務(wù)
這個更正都基于文章來源:http://www.zghlxwxcb.cn/news/detail-636073.html
JAVA實現(xiàn)存在更新不存在插入與及多余的進行刪除(二)_mybatisplus存在更新否則新增_wackpa的博客-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-636073.html
到了這里,關(guān)于JAVA實現(xiàn)存在更新不存在插入與及多余的進行刪除(三)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!