龙空技术网

行政区划省市县数据

风后奇门柳坤生 2108

前言:

如今姐妹们对“css省份”可能比较看重,朋友们都需要了解一些“css省份”的相关知识。那么小编也在网摘上搜集了一些关于“css省份””的相关内容,希望我们能喜欢,你们快快来学习一下吧!

  前言

  这里有一个开源库:

  或者调用各大地图商的API

  腾讯地图:

  或者自己去抓取官方发布的区划数据

  民政局:

  统计局:

  推荐直接使用开源库数据,省得自己折腾,如果需要满足自定义数据结构,可以把region.json(包含所有省市区/县数据)下载下来,自己解析存库

  解析json

  我们选择使用开源库里面的数据

  首先先把region.json下载下来,同时创建我们自己结构的表

CREATE TABLE `region`  (  `code` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '行政区划代码',  `p_code` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '上级行政区划代码',  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '省份/城市/[区]县城 名称',  `sort` int(3) NULL DEFAULT NULL COMMENT '排序字段(如果不需要可以不用)',  PRIMARY KEY (`code`, `p_code`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '行政区划省市县数据' ROW_FORMAT = Compact;

  解析json、存库

    public static void main(String[] args) {        System.out.println("数据解析开始...");        TimeInterval timer = DateUtil.timer();//计时器        //读取、处理json        StringBuilder stringBuilder = new StringBuilder();        try {            File regionJson = new File("D:\\region.json");            BufferedReader reader = new BufferedReader(new FileReader(regionJson));            Object[] lines = reader.lines().toArray();            for (Object o : lines) {                stringBuilder.append(o);            }        } catch (FileNotFoundException e) {            e.printStackTrace();        }        //JSONUtil工具类使用hutool        JSONArray jsonArray = JSONUtil.parseArray(stringBuilder.toString());        //获取实例,DbUtil工具类:        DbUtil dbUtil = new DbUtil("jdbc:mysql://localhost/jfinal_demo","root","123456");        //清空表        dbUtil.execute("truncate table region");        //关闭自动提交事务,提高效率        dbUtil.setAutoCommit(false);        //插入数据        for (int i = 0; i < jsonArray.size(); i++) {            int sort = i+1;//排序字段            Object element = jsonArray.get(i);            JSONObject o = (JSONObject) element;            String oCode = o.getStr("code");            dbUtil.execute("insert into region values (?,?,?,?)", new Object[]{oCode,"-1",o.getStr("name"),sort});            JSONArray a = (JSONArray) o.get("children");            for (Object item : a) {                sort++;                JSONObject o1 = (JSONObject) item;                String o1Code = o1.getStr("code");                dbUtil.execute("insert into region values (?,?,?,?)", new Object[]{o1Code,oCode,o1.getStr("name"),sort});                JSONArray a1 = (JSONArray) o1.get("children");                for (Object value : a1) {                    sort++;                    JSONObject o2 = (JSONObject) value;                    String o2Code = o2.getStr("code");                    dbUtil.execute("insert into region values (?,?,?,?)", new Object[]{o2Code,o1Code,o2.getStr("name"),sort});                }            }        }        //手动管理事务        dbUtil.commit();        //关闭连接        dbUtil.close();        System.out.println("数据解析、保存完成!耗时:"+timer.interval()+"毫秒");    }
  效果

  省

select    name    ,min(sort)from    regionwhere    p_code = '-1' -- 省    -- p_code = '110000' -- 市    -- p_code = '110100' -- 区/县group by    nameorder by    min(sort)

  市

select    name    ,min(sort)from    regionwhere    -- p_code = '-1' -- 省    p_code = '110000' -- 市    -- p_code = '110100' -- 区/县group by    nameorder by    min(sort)

  区/县

select    name    ,min(sort)from    regionwhere    -- p_code = '-1' -- 省    -- p_code = '110000' -- 市    p_code = '110100' -- 区/县group by    nameorder by    min(sort)
版权声明

作者:huanzi-qch

出处:

若标题中有“转载”字样,则本文版权归原作者所有。若无转载字样,本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利.

标签: #css省份