Json数据上传—>对象转换—>存入MongoDB(SpringData提供的规范)

上传json

代码实现

java 复制代码
@RestController
@RequestMapping("/api/hosp")
public class ApiController{
	
	@Autowired
	private HospitalService hospitalService;

	@PostMapping("saveHospital")
	public Result saveHosp(HttpServletRequest request){
		Map<String,String[]> parameterMap = request.getParameterMap();
		//调用工具进行类型转换
		Map<String,Object> paramMap = HttpRequestHelper.switchMap(requestMap);

		//调用service方法,添加到数据库
		hospitalService.save(paramMap);
		return Reult.ok();
	}
}
java 复制代码
@Service
public class HospitalServiceImpl implements HospitalService{
	
	@Autowired
	private HospitalRepository hospitalRepository;

	@Override
	public void save(Map<String,Object> paramMap){
		
		//通过fastjson工具进行对参数的转换
		String mapString = JSONObject.toJSONString(paramMap);
		Hospital hospital = JSONObject.parseObject(mapString,Hospital.class);
		
		//判断是否存在数据
		String hoscode = hospital.getHoscode();
		Hospital hospitalExist = hospitalRepository.getHospitalByHoscode(hoscode);
		
		//如果不存在,进行添加,否则修改
		if(hospitalExist != null){
			hospital.setStatus(hospitalExist.getStatus());
			hospital.setCreateTime(hospitalExist.getCreateTime());
			hospital.setUpdateTime(new Date());
			hospital.setIsDeleted(0);
			hospitalRepository.save(hospital);
		}else{
			hospital.setStatus(0);
			hospital.setCreateTime(new Date());
			hospital.setUpdateTime(new Date());
			hospital.setIsDeleted(0);
			hospitalRepository.save(hospital);
		}
		
	}
}


java 复制代码
@Repository
public interface HospitalRepository extends MongoRepository<Hospital,String>{
	//判断是否存在数据
	Hospital getHospitalByHoscode(String hoscode);
}

工具

java 复制代码
/**
	将map集合的value,由String数组类型转为Object类型
*/
public static Map<String,Object> switchMap(Map<String,String[]> paramMap){
	Map<String,Object> resultMap = new HashMap<>();
	for(Map.Entry<String,String[]> param:paramMap.entrySet()){
		resultMap.put(param.getKey(),param.getValue()[0]);
	}
	return resultMap;
}
java 复制代码
/**
	引入依赖fastjson,进行如下转换
	将Map->字符串->对象
*/

数据库MongoDB

通过MongoDB客户端工具查看上传的数据

相关推荐
daidaidaiyu9 小时前
ThingsBoard 集群的核心逻辑源码分析
java
我可能是个假开发10 小时前
FTP Unicode 文件名导致 `550` 的问题分析与解决方案
java·开发语言·spring
caoerzhong10 小时前
中小企业上 WMS 该先上哪几块:JeeWMS 开源 Java 仓库管理系统的分批上线清单
java·python·开源
【JAVA】玩家11 小时前
Spring核心原理全解析:从零到生产实战
java·后端·spring
Wang's Blog12 小时前
Java框架 SpringCloud 快速入门: 实现 Feign 最佳实践(抽取方式)
java·spring cloud
MandalaO_O13 小时前
IDEA 开发(快捷键 + 调试 + 序列化)
java·ide·intellij-idea
xiaoqiMikko13 小时前
JVM 线上排查实战(七):jps 看不见它、jstack 连不上它,可它明明活得好好的
java·jvm
狼爷14 小时前
Rust/Go/Java/Python/PHP 大比拼:负载下后端框架到底差多少?
java·后端·编程语言
念何架构之路14 小时前
zap扩展生态与总结
java·前端·数据库
第七页独白15 小时前
汽车零件厂如何通过 QMS 真正落地 IATF 16949——QMS软件系统:品质检验-内审稽核-8d客诉管理:全星质量管理软件系统
java·前端·数据库