文章目录
今天给大家带来一个调用接口,来获取数据解析后再保存到数据库中的业务,业务中的Mapper和实体类我就不在这里写了,相信大家都会写新增的SQL和定义实体类。
下面是我写的业务代码,有什么建议可以给我评论留言。
1.在yml文件中配置自己定义的接口URL
//自己定义的JSON接口URL
blacklist_data_url: 接口URL
2.在Controller中添加请求方法和路径
/**
* @Title: 查询
* @Description: 查询车辆的记录
* @Author: 半度纳
* @Date: 2022/9/27 17:33
*/
@GetMapping("/Blacklist")
public void selectBlacklist(){
boolean a = imBuBlacklistService.selectBlacklist();//调用业务层方法
}
3.在Service中添加方法
/**
* @Title: 查询
* @Description: 查询车辆的记录
* @Author: 半度纳
* @Date: 2022/9/27 17:33
* @return
*/
public boolean selectBlacklist();//返回值类型没要求
4.在ServiceImpl中实现方法
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.alibaba.fastjson2.JSON;
@Value("${blacklist_data_url}")
public String blacklist_data_url;//接口URL
/**
* @Title: 查询
* @Description: 查询车辆的记录
* @Author: 半度纳
* @Date: 2022/9/27 17:33
* @return
*/
@Override
public boolean selectBlacklist() {
//获取的JSON接口数据(在输出测试时sendGet方法可能会自动输出,具体需看底层代码)
String list= HttpUtils.sendGet(blacklist_data_url);
JSONObject j = JSON.parseObject(list);//将获取的JSON数据存储到变量中
if(j.getBoolean("success")){//获取success判断是否为空
JSONObject jsonData = j.getJSONObject("body");//解析JSON的body
JSONArray jsonArray = jsonData.getJSONArray("data");//解析JSON的data数据
JSONObject row = null;//定义一个空变量
ImBuBlacklist buBlacklist=new ImBuBlacklist();//new一个实体类用来接收数据
for (int y = 0; y < jsonArray.size(); ++y) {//循环将JSON数据存储到数据库中
buBlacklist = new ImBuBlacklist();//new一个实体类存储数据
row = jsonArray.getJSONObject(y);//获取数组中的数据
//设置获取到的JSON号牌号码到实体类的相同字段中
buBlacklist.setPlateNumber(row.getString("mechanicalNumber"));
//设置获取到的JSON车辆类型到实体类的相同字段中
buBlacklist.setVehicleType(row.getString("machType"));
//设置获取到的JSON检查日期到实体类的相同字段中
buBlacklist.setExamineDate(row.getDate("createDate"));
//设置获取到的JSON检查地点到实体类的相同字段中
buBlacklist.setExamineAddress(row.getString("machineAddr"));
//设置获取到的JSON违规行为到实体类的相同字段中
buBlacklist.setIllegalBehavior(row.getString("joinTheBlacklistReason"));
//设置获取到的JSON黑名单类型到实体类的相同字段中
buBlacklist.setBlacklistType(row.getInteger("violations"));
//通过mapper的新增方法,把实体类中的JSON数据存到数据库中
imBuBlacklistMapper.insertImBuBlacklist(buBlacklist);
}
return true;//自己定义的返回值(没有用)
}else{
return false;
}
}