需求:
需要一个按钮,每次执行的时候,调接口刷新数据库表中的数据:
刷新条件:
如果接口获取的数据和数据库表的数据完全一致则不刷新,如果不一致,则新增数据;文章来源地址https://www.toymoban.com/news/detail-608189.html
// 实现接口层
@Override
public Result addInfo(Map<String, Object> paramMap) {
List<Map<String,String>> reg = getRegionInfo(); // 接口获取的数据
List<Map<String,String>> list = xxxMapper.selectQuestRegAll(); // 数据库查询的数据
Iterator<Map<String, String>> iterator = reg.iterator();
while (iterator.hasNext()){
Map<String, String> next = iterator.next();
String name = String.valueOf(next.get("name"));
String code = String.valueOf(next.get("code"));
Iterator<Map<String, String>> iterator2 = list.iterator();
while (iterator2.hasNext()){
Map<String, String> next2 = iterator2.next();
String regionName = String.valueOf(next2.get("name"));
String RegionCode = String.valueOf(next2.get("code"));
// 根据条件删除数据:
if(name.equals(regionName) && code.equals(RegionCode)){
iterator.remove();
}
}
}
// 如果reg有数据,则新增;
if(reg.size() > 0){
xxxMapper.addInfo(reg);
}
// Mapper层
void addInfo(List<Map<String, String>> paramList);
// 持久化层
<!-- 数据刷新 -->
<insert id="addInfo" parameterType="java.util.List">
<foreach collection="list" item="customer" index="index" separator=";">
INSERT IGNORE INTO xxx_form_data
<foreach collection="customer.entrySet()" index="key" separator="," open="(" close=")">
${key}
</foreach>
VALUES
<foreach collection="customer.entrySet()" item="value" separator="," open="(" close=")">
#{value}
</foreach>
</foreach>
</insert>
文章来源:https://www.toymoban.com/news/detail-608189.html
到了这里,关于<Java Iterator> 迭代器Iterator双层循环 案例分享的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!