这个版本,主要是迭代重载了下save方法,不废话,直接上代码:
/**
* 保存数据,处理数据的增删改
*
* @param paramData 前台的参数
* @param dbData 后台的数据
* @param clazz 前后台参数对应的class
* @param beanName spring bean服务实现类名称 首字母转小写
* @return SUCCESS:操作成功
*/
String saveData(List<T> paramData, List<T> dbData, Class clazz,String beanName);
/**
* 重载saveData 自适应找到对应的clazz与beanName
*
* @param paramData
* @param dbData
* @return
*/
String saveData(List<T> paramData, List<T> dbData);
具体实现类对应的重载方法如下:
@Override
public String saveData(List<T> paramData, List<T> dbData) {
if (CollectionUtils.isEmpty(paramData) && CollectionUtils.isEmpty(dbData)) {
throw new CustomException("入参与数据库数据不能都为空");
}
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("根据实体类" + name + "没找到对应的bean服务");
}
然后就是头部加多了
implements ICudDataService<T>, ApplicationContextAware。
通过这个ApplicationContextAware获取到所有bean服务,肤浅地以实体类拼凑一下服务名,找到bean服务就作为这个调用的bean服务
这个更正都基于文章来源:https://www.toymoban.com/news/detail-636073.html
JAVA实现存在更新不存在插入与及多余的进行删除(二)_mybatisplus存在更新否则新增_wackpa的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-636073.html
到了这里,关于JAVA实现存在更新不存在插入与及多余的进行删除(三)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!