zoukankan      html  css  js  c++  java
  • 解析超大数据的json文件,存入数据库

    需求:导出json文件,解析数据存入数据库

    json格式[{k:v,k:v},{..},{..}]

    json文件是json数组中包含json对象,json对象是表的字段名和值

    json数据大约有200w条,如果直接用流的方式读成对象,不太可能数据太大了

    解决方法:用alilibaba.fastjson

    阿里的json可以实现一边读一边存的,这样就可以控制一次存储的数量

    pubic void sive(){
      File file=new File(path);//json文件路径
      List<reportData> reportData=new ....//实体对象的list集合
      JSONReader reader=new JSONReader(new FileReader(file));
      int count=0;
      read.starArray();//开始读json数组
      while(readser.hasNext()){
        read.startObject();//开始取json对象
        JSONObject json=new JSONObject();
        while(reader.hasNext()){
          string key=reader.readString();//json的key
          string value=reader.readObject().toString();//json的value
          json.put(key,value);
        }
        reportData data=JSON.parseObject(json.toString(),reportData.class)//jso格式转换对象
        reportData.add(data);
        count++;
        if(count%5000==0){//每5000条数据插入一次数据库,数据库操作用的mybatis的循环insert
          mapper.save(reportData);
          reportData.clear();//清空list
        }
        reader.endObject();
      }
      reader.endArray();  
      reader.close();
      if(reportData.size()>0){//如果读完之后,size>0,说明list还有数据,数据不足5000
        mapper.save(erportData)
      }
    }
  • 相关阅读:
    UML的现状及未来发展
    终于申请好了Blog。:)
    2004年最后一场雪
    今天开始在乐世安通上班了
    狐狸与兔子问题
    今天上午
    好久没更新了啊,写写近况
    还是得考研啊!
    kettle HTTP client
    国外的一个PIC源代码网站,比较不错,基于HiTech C的。共享一下
  • 原文地址:https://www.cnblogs.com/xiandong/p/9935240.html
Copyright © 2011-2022 走看看