JAVA--导数到Mongodb

package com.xinsight.server;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
/**
 *将文件中的数据导入到Mongodb中 
 */
public class InputMongodbServer {
    private static Mongo mg ;
    private static DB db;
    private static int a = 12;
    public static void main(String args[]){
        String path = "E:/a.txt";
        initMongo();
        findData(path);
    }
    
    /**
     *读取数据并导数 
     */
    public static void findData(String path){
        List<BasicDBObject> list = new ArrayList<BasicDBObject>();
        File file = new File(path);
        if(!file.exists()){
            System.err.println("文件不存在");
        }else{
            try {
                int num = 0;
                BufferedReader br = new BufferedReader(new FileReader(file));
                for(String line = new String(br.readLine().getBytes());line != null;line = br.readLine()){
                    num++;
                    System.out.println(line);
                    BasicDBObject basi = new BasicDBObject();
                    String strs[] =line.split("    ");
                    basi.put("name", strs[0]);
                    basi.put("age", strs[1]);
                    basi.put("sex",strs[2]);
                    list.add(basi);
                    if(num % 100000 == 0){
                        insertDBObj(list);
                        list.clear();
                    }
                }
                insertDBObj(list);
                list.clear();
                System.out.println("导数完成!");
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    /**
     * 导数到数据库
     */
    public static void insertAll(List<BasicDBObject> list){
        List<DBObject> list2 = new ArrayList<DBObject>();
        for(int i = 0;i < list.size();i++){
            DBObject obj = list.get(i);
            list2.add(obj);
        }
        DBCollection dc = db.getCollection("zq2");
        dc.insert(list2);
    }
    
    public static List<BasicDBObject> list2 = new ArrayList<BasicDBObject>();
    /**
     *设置_id为自增 
     */
    public static void insertDBObj(List<BasicDBObject> list){
        for(int i = 0;i < list.size();i++){
            BasicDBObject basi2 = list.get(i);
            basi2.put("_id", a++);
            list2.add(basi2);
        }
        insertAll(list2);
    }
    
    /**
     * 链接Mongodb数据库
     */
    public static void initMongo(){
        try {
            mg = new Mongo("localhost",27017);
            db = mg.getDB("admin");
            boolean auth = db.authenticate("aa", "aa".toCharArray());
            if(auth){
                db = mg.getDB("zq1");
                
            }else{
                System.err.println("链接MongoDB失败");
            }
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}
原文地址:https://www.cnblogs.com/zqzdong/p/4838861.html