👏作者简介:大家好,我是Rockey,不知名企业的不知名Java开发工程师
🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦
📝联系方式:he18339193956,加我进群,大家一起学习,一起读书,一起对抗互联网寒冬👀
参考
第一步,首先访问接口获取接口里面的json数据
第二步,解析json数据
第三步,存入数据库
首先介绍我用的是后端是MyBatisPlus来与数据库进行交互
不懂的可以参考的
MyBatisPlus基本入门------连接数据库查询 -----BaseMapper基本操作
首先在数据库中创建对应的表
CREATE TABLE `demo` ( `id` CHAR(19) NOT NULL COMMENT '主键', `x_dis` INT(11) NOT NULL DEFAULT '0' COMMENT 'x轴', `y_dis` INT(11) NOT NULL DEFAULT '0' COMMENT 'y轴', `h_dis` INT(11) NOT NULL DEFAULT '0' COMMENT 'h轴', PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='网站统计日数据';
第二步
创建对应的entity
package com.chx.disService.entity; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value="StatisticsDisplacement对象", description="网站统计日数据") public class demo implements Serializable { private static final long serialVersionUID = 1L; @ExcelProperty("id") @ApiModelProperty(value = "主键") @TableId(value = "id", type = IdType.ID_WORKER_STR) private String id; @ExcelProperty("X轴位移") @ApiModelProperty(value = "X轴位移") private Integer xDis; @ExcelProperty("Y轴位移") @ApiModelProperty(value = "Y轴位移") private Integer yDis; @ExcelProperty("H轴位移") @ApiModelProperty(value = "H轴位移") private Integer hDis; }
第三步创建对应的mapper
package com.chx.disService.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.chx.disService.entity.demo; public interface demoMapper extends BaseMapper<demo> { }
mapper对应的xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.chx.disService.mapper.demoMapper"> </mapper>
然后就可以用demoMapper了
//这个如果报错不影响运行 @Autowired private demoMapper demoMapper; @PostMapping(value = "/test3PostApi") public Object testPost1(@RequestBody JSONObject param) throws URISyntaxException { QueryWrapper<demo> queryWrapper = new QueryWrapper<>(); // RestTemplate restTemplate = new RestTemplate(); URI uri = new URI("自己的接口地址"); // String appCode = "52cc0ea3aaf24eb7a1250f327fea9f25"; HttpHeaders headers = new HttpHeaders(); //设置请求头为json格式 headers.set("Accept-Charset", "UTF-8"); headers.set("Content-Type", "application/json; charset=utf-8"); // headers.add("Authorization", "APPCODE " + appCode); //添加参数,因为HttpEntity里面的参数是MultiValueMap类型的,所以使用这个map集合 MultiValueMap<String, String> map = new LinkedMultiValueMap<>(); map.add("id","自己的参数"); map.add("beginDate", "自己的参数"); map.add("endDate", "自己的参数"); map.add("version", "自己的参数"); map.add("sign", "自己的参数"); //添加请求的实体类,这里第一个参数是要发送的参数,第二个参数是请求头里的数据 HttpEntity<Object> requestEntity = new HttpEntity<>(map, headers); //跟下面使用交换机的方法结果一样 //第一种方法 String s = restTemplate.postForObject(uri, requestEntity, String.class); //jsonObject就是获取数据的json数据 JSONObject jsonObject = JSON.parseObject(s); System.out.println(jsonObject); /* //第二种方法 //发送post请求 ResponseEntity<String> exchange = restTemplate.exchange(uri, HttpMethod.POST, requestEntity, String.class); //将返回的值转换为json数据 JSONObject jsonObject = JSON.parseObject(exchange.getBody()); System.out.println(jsonObject); */ //封装接口数据到数据库 // JSONObject result = jsonObject.getJSONObject("code"); // System.out.println(result); //解析json数据里面的数组 //这个就是得到json数据里面的basedata数组 JSONArray basedata = jsonObject.getJSONArray("basedata"); System.out.println(basedata); //解析basedata里面的数据 for (int i = 0; i <basedata.size(); i++) { demo demo = new demo(); JSONObject jsonObject1 = basedata.getJSONObject(i); System.out.println(jsonObject1); //获取X值 String x = jsonObject1.getString("X"); demo.setXDis(Integer.valueOf(x.toString())); System.out.println(x); //获取Y值 String y = jsonObject1.getString("Y"); demo.setYDis(Integer.valueOf(y.toString())); //获取Z值 String z = jsonObject1.getString("Z"); demo.setHDis(Integer.valueOf(z.toString())); //将数据插入数据库 demoMapper.insert(demo); String createDate = jsonObject1.getString("createDate"); System.out.println(createDate); } // String code = jsonObject.getString("code"); // System.out.println(code); // String deviceName = jsonObject.getString("deviceName"); // System.out.println(deviceName); // List<Map<String, String>> resultList = (List<Map<String, String>>) jsonObject.get("Result"); // for (Map<String, String> obj : resultList) { // System.out.println(obj); // // //在这里把你获取到的数据封装到你需要的实体类中,调用你需要的方法即可存入数据库 // //...... // } return jsonObject; }
关键代码
测试数据库发现已经存入了
如果要加定时任务参考我的这篇博客
springboot工程如何设置定时任务详解(@Scheduled)以及cron表达式
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站点击跳转浏览。
结语
🔥一个人可以掌握知识,但只有与他人交流才能形成智慧。
🔥One person can acquire knowledge, but wisdom is formed only in the exchange with others.
📝 欢迎大家关注博主公众号 Rockey小何同学 添加博主微信:he18339193956进群,一起学习,一起成长,一起提高认知。
🏆 我坚信人与人之间的差距是表面上是财富的差距,本质上是大脑中认知的差距,
我们下期再见。