项目场景:
两个form表单的数据存入同一个数据库表
问题描述
1.两个from表单数据一起传到后端但是数据解析和xml文件的sql获取不到报错
2.数据接受到了但是提示数据类型不兼容
3.使用@RequestBody注解报错Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported
原因分析:
第一个问题是是因为数据传输读取有问题
第二个是因为实体类和数据库类型不匹配或者是sqlserver不兼容这个类型
第三个是因为前端没转json因为@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);
所以接收不到
解决方案:
首先两个from表单的数据太多了我这是三十个字段,所以转成了json对象传入到了后端
第二步是解析因为是两个json对象所以后端使用jsonobject接收
注:这是转为json对象然后json对象存入实体类的方式
String json = JSONArray.toJSONString(jsonObject.get("object1"));
String json2 = JSONArray.toJSONString(jsonObject.get("object2"));
ChangeMeterRecord changeMeterRecord = JSONObject.parseObject(json, ChangeMeterRecord.class);
SwitchingTable switchingTable = JSONObject.parseObject(json2, SwitchingTable.class);
这样解析数据就解决了然后是数据传输
单条的插入语句使用map接收,批量的使用list接收,使用实体类也可以 我这里用的map
注:key要小写不然mybaits识别不到
第二个问题:
这个要核对数据了,首先核对你自己的实体类的数据类型跟你自己的数据库表内的数据类型是否一致不一致的改了这是一点,如果都改了还报错那就把数据库的数据类型直接改成其他能用的试一试
第三个问题:
这个的话是因为我自己的项目太老了,前端的json没有封装,在交互的位置添加一下代码即可
contentType: 'application/json; charset=utf-8',