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)
      }
    }
  • 相关阅读:
    RecyclerView的通用适配器
    Service由浅到深——AIDL的使用方式
    Android热修复——Tinker的集成
    ListView ,GridView 通用适配器
    Android开发者必知的5个开源库
    Android下强制打开键盘
    Android下强制打开软键盘
    怎么监听Android软键盘的打开和关闭
    【转】ListView 3D翻页效果
    Android 手动显示和隐藏软键盘
  • 原文地址:https://www.cnblogs.com/xiandong/p/9935240.html
Copyright © 2011-2022 走看看