zoukankan      html  css  js  c++  java
  • sqlyog导出json数据格式支持mysql数据转存mongodb

    <!-------------知识的力量是无限的(当然肯定还有更简单的方法)-----------!>

     

    当我考虑将省市区三级联动数据从mysql转入mongodb时遇到了网上无直接插入mongodb的示例(基本均是mysql插入示例)。于是想到利用json文件直接导入mongodb会比较easy(SQLyog如何导出json?)

    在SQLyog中写一个json格式查询语句:(省市区example如下:)看一下就能懂其中规则*

    SELECT
    '{"code":"' AS a,
    cities.`cityid` AS b,
    '","name":"' AS c,
    cities.`city` AS d,
    '","provinceCode":"' AS e,
    cities.`provinceid` AS f,
    '"}' AS g
    FROM cities

     

    选取复制所有行到剪贴板:

    接下来是将导出的json拼接成一个json文件:(在notpad++中以^查找来替换,拼接jsonarray串加array名(记得进行json校验与json压缩处理))

    json在线校验URL:http://www.bejson.com/ 

    json在线压缩URL:http://www.sojson.com/yasuo.html

    最后以压缩成一个json文件的形式在java代码中解析

    主干精华:

     1 @Test
     2 public void testProCityArea(){
     3 String fileName = "ProvCityArea.geojson";
     4 String path = System.getProperty("user.dir") + "\src\main\webapp\static\geojson\" + fileName;
     5 JSONObject jsonobject = JSONObject.parseObject(FileHelper.readFile(path));
     6 JSONArray provArray = jsonobject.getJSONArray("provinces"); 
     7 for (Object object : provArray) {
     8 JSONObject provJson = (JSONObject) object;
     9 Province province = new Province(GuidUtils.getInstance().getGuid(), provJson.getString("code"), provJson.getString("name"));
    10 mongoTemplate.insert(province, "province");
    11 }
    12 JSONArray cityArray = jsonobject.getJSONArray("city");
    13 for (Object object : cityArray) {
    14 JSONObject cityJson = (JSONObject) object;
    15 City city = new City(GuidUtils.getInstance().getGuid(), cityJson.getString("code"), cityJson.getString("name"), cityJson.getString("provinceCode"));
    16 mongoTemplate.insert(city, "city");
    17 }
    18 JSONArray areaArray = jsonobject.getJSONArray("area");
    19 for (Object object : areaArray) {
    20 JSONObject areaJson = (JSONObject) object;
    21 Area area = new Area(GuidUtils.getInstance().getGuid(), areaJson.getString("code"), areaJson.getString("name"), areaJson.getString("cityCode"));
    22 mongoTemplate.insert(area, "area");
    23 }
    24 }

    FileHelper:

     1 import java.io.BufferedReader;
     2 import java.io.FileInputStream;
     3 import java.io.IOException;
     4 import java.io.InputStreamReader;
     5 
     6 public class FileHelper {
     7 
     8 public static String readFile(String path){
     9 BufferedReader reader = null;
    10 String laststr = "";
    11 try{
    12 FileInputStream fileInputStream = new FileInputStream(path);
    13 InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
    14 reader = new BufferedReader(inputStreamReader);
    15 String tempString = null;
    16 while((tempString = reader.readLine()) != null){
    17 laststr += tempString;
    18 }
    19 reader.close();
    20 }catch(IOException e){
    21 e.printStackTrace();
    22 }finally{
    23 if(reader != null){
    24 try {
    25 reader.close();
    26 } catch (IOException e) {
    27 e.printStackTrace();
    28 }
    29 }
    30 }
    31 return laststr;    
    32 }
    33 
    34 }

    GuidUtils

     1 public class GuidUtils {
     2 
     3 private static final GuidUtils instance = new GuidUtils();
     4 
     5 private GuidUtils(){
     6 
     7 }
     8 
     9 public static GuidUtils getInstance() {
    10 return instance;
    11 }
    12 
    13 public String getGuid() {
    14 UUID uuid = UUID.randomUUID();
    15 String guid = uuid.toString();
    16 guid = guid.replace("-", "");
    17 return guid.toUpperCase();
    18 }
    19 
    20 }


      

     

     

     

     

  • 相关阅读:
    汉诺塔解法解析
    scrapy 集成到 django(三)
    scrapy 集成到 django(二)
    scrapy 集成到 django(一)
    日记-2017-7-26-javascript
    日记-2017-7-25-django/admin-Levenshtein
    日记-2017-7-24-cp-css-django/media
    二叉树 4 种排序方式
    归并排序 / 快排
    django-import-export 插件
  • 原文地址:https://www.cnblogs.com/XinHuai/p/6195129.html
Copyright © 2011-2022 走看看