获取世界各国、全国省份、城市、县
https://wuliu.taobao.com/user/output_address.do?range=country
https://wuliu.taobao.com/user/output_address.do?range=province
https://wuliu.taobao.com/user/output_address.do?range=city
https://wuliu.taobao.com/user/output_address.do?range=county
将上面获取的json拷贝到txt文件里面,下面是mac系统的,如果是windows系统,那么修改
String url = "/Users/tentsuuhou/Desktop/"+name+".txt";
这个路径转换程你拷贝json到txt文件的路径就可以了
package com.dtb.member.controller.api; import com.dtb.member.mapper.AreaDaoMapper; import com.dtb.member.service.ApiLogService; import com.dtb.member.util.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.*; /** * @Author:ChengJian * @Description: * @Date: Created in 下午3:21 2019/4/2 */ @Controller @RequestMapping(value = "/upload") public class AreaController { @Autowired AreaDaoMapper areaDaoMapper; @RequestMapping(value = "/area.html") @ResponseBody public String upload(String name) throws IOException { String url = "/Users/tentsuuhou/Desktop/"+name+".txt"; File file = new File(url); FileReader reader = new FileReader(file); int fileLength = (int)file.length(); char[] chars = new char[fileLength]; reader.read(chars); String area [] = String.valueOf(chars).split("]"); List<Map<String,Object>> list = new ArrayList<>(); Object object[] = null; String everyRecords [] = null; String str = ""; int areaLength = area.length; int m = 0; for(int j = 0; j < areaLength;j++){ str = (String)area[j]; str = str.substring(2,str.length()); everyRecords = str.split("'"); if(everyRecords.length == 8){ Map<String,Object> map = new HashMap<>(); if(everyRecords[1].length() == 6){ map.put("num1",everyRecords[1]); map.put("num2",everyRecords[3]); map.put("num3",everyRecords[5].equals("1")?"0086":everyRecords[5]); map.put("num4",everyRecords[7]); map.put("num5",DateUtils.getDateToyyyy_MM_dd_HH_mm_ss(new Date())); map.put("num6",DateUtils.getDateToyyyy_MM_dd_HH_mm_ss(new Date())); list.add(map); }else if(everyRecords[1].length() < 6){ //去除其他国家的记录 m++; } //添加中国区域代码 if(m == 1){ map.put("num1","0086"); map.put("num2","中国"); map.put("num3","0"); map.put("num4","zhongguo"); map.put("num5",DateUtils.getDateToyyyy_MM_dd_HH_mm_ss(new Date())); map.put("num6",DateUtils.getDateToyyyy_MM_dd_HH_mm_ss(new Date())); list.add(map); } } } if(list != null){ areaDaoMapper.insertArea(list); }else{ System.out.println("List is null"); } return "NICE"; } }
public interface AreaDaoMapper { int insertArea(List<Map<String,Object>> list); }
<?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.dtb.member.mapper.AreaDaoMapper"> <insert id="insertArea" parameterType="java.util.Map"> INSERT INTO t_shop_county (administrative_code, area_name, parent_administrative_code, pin_yin_name, add_time, update_time) VALUES <foreach collection="list" index="index" item="item" separator=","> (#{item.num1},#{item.num2},#{item.num3},#{item.num4},#{item.num5},#{item.num6}) </foreach> </insert> </mapper>
转载于:https://my.oschina.net/mdxlcj/blog/3031499