好几月没写博客了~~~

---------------------

在公司最近在搞用java往MongDB导入数据 现在是我刚导入2000W条数据了 所以就先写上吧,废话也不多说了

MongDB 我本机上没有  我往服务器里面的MongDB导入的 只有URL链接

首先是导入 我是不是用的批量导入   用的是单条导入    比较快

  void testPost(String urlStr) {
try {
URL url = new URL(urlStr);
URLConnection con = url.openConnection();
con.setDoOutput(true);
con.setRequestProperty("Pragma:", "no-cache");
con.setRequestProperty("Cache-Control", "no-cache");
con.setRequestProperty("Content-Type", "text/xml");
//实例化Mongo对象,连接27017端口
Mongo mongo = new Mongo("这里写IP地址你需要从哪个IP里读取数据的IP地址", 27017);
//连接名为yourdb的数据库,假如数据库不存在的话,mongodb会自动建立
DB db = mongo.getDB("yourdb"); // Get collection from MongoDB, database named "yourDB"
//从Mongodb中获得名为yourColleection的数据集合,如果该数据集合不存在,Mongodb会为其新建立
DBCollection collection = db.getCollection("dl_hotelimage");
OutputStreamWriter out = new OutputStreamWriter(con
.getOutputStream());
String xmlInfo = getXmlInfo();
out.write(new String(xmlInfo.getBytes("UTF-8")));
out.flush();
out.close();
BufferedReader br = new BufferedReader(new InputStreamReader(con
.getInputStream()));
String line = "";
int i =1;
BasicDBObject document=new BasicDBObject();
for (line = br.readLine(); line != null; line = br.readLine()) {
String[] str=line.split("\\|",-1);
document = new BasicDBObject();
if(str.length!=0){
document.put("id", str[0]);
}
if(str.length!=1){
document.put("ImageCaption", str[1]);
}
if(str.length!=2){
document.put("ImageUrl", str[2]);
}
if(str.length!=3){
document.put("ImageOrder", str[3]);
}
collection.save(document);
//BasicDBObject searchQuery = new BasicDBObject();
//searchQuery.put("id", str[0]);
// 使用collection的find方法查找document
//DBCursor cursor = collection.find(searchQuery);
//循环输出结果
System.out.println(i+++"条-----"+collection.count());
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//XML文件的配置 其实不用XML文件的
private String getXmlInfo() {
StringBuilder sb = new StringBuilder();
sb.append("<GetStaticInformationRQ>");
sb.append("<Header>");
sb.append("<ClientID>BJMAIGESHI_API</ClientID>");
sb.append("<LicenseKey>BJMAIGESHI_API</LicenseKey>");
sb.append("</Header>");
sb.append("<StaticType>这里需要你写你要导入哪些数据的型号英文</StaticType>");
sb.append("</GetStaticInformationRQ>");
return sb.toString();
} public static void main(String[] args) {
String url = "这里就是你的URL链接地址了需要从这个URL里读取数据";
new HttpPostTest().testPost(url);
}

导入

这个是我已经导入的数据 目前还在导入

附赠你们一个查询

  void testPost(String urlStr) {
try {
URL url = new URL(urlStr);
URLConnection con = url.openConnection();
con.setDoOutput(true);
con.setRequestProperty("Pragma:", "no-cache");
con.setRequestProperty("Cache-Control", "no-cache");
con.setRequestProperty("Content-Type", "text/xml"); OutputStreamWriter out = new OutputStreamWriter(con
.getOutputStream());
String xmlInfo = getXmlInfo();
out.write(new String(xmlInfo.getBytes("ISO-8859-1")));
out.flush();
out.close();
BufferedReader br = new BufferedReader(new InputStreamReader(con
.getInputStream()));
String line = "";
int i=0;
for (line = br.readLine(); line != null; line = br.readLine()) {
String str[]=line.split("\\|+");
System.out.println(i+++"条----"+line);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} private String getXmlInfo() {
StringBuilder sb = new StringBuilder();
sb.append("<GetStaticInformationRQ>");
sb.append("<Header>");
sb.append("<ClientID>BJMAIGESHI_API</ClientID>");
sb.append("<LicenseKey>BJMAIGESHI_API</LicenseKey>");
sb.append("</Header>");
sb.append("<StaticType>HotelImage</StaticType>");
sb.append("</GetStaticInformationRQ>");
return sb.toString();
} public static void main(String[] args) {
String url = "URL链接地址 你查询的";
new HttpPostTest().testPost(url);
}

查询

在附赠一个查询数据库

 public static void main(String[] args) {
try {
//实例化Mongo对象,连接27017端口
Mongo mongo = new Mongo("导入的IP地址", 27017);
//连接名为yourdb的数据库,假如数据库不存在的话,mongodb会自动建立
DB db = mongo.getDB("yourdb"); // Get collection from MongoDB, database named "yourDB"
//从Mongodb中获得名为yourColleection的数据集合,如果该数据集合不存在,Mongodb会为其新建立
DBCollection collection = db.getCollection("dl_hotelimage");
// 使用BasicDBObject对象创建一个mongodb的document,并给予赋值。 // 创建要查询的document
BasicDBObject searchQuery = new BasicDBObject();
// 使用collection的find方法查找document
DBCursor cursor = collection.find(searchQuery);
//循环输出结果
int i=0;
while (cursor.hasNext()) {
System.out.println(i+++","+cursor.next());
}
System.out.println("Done");
} catch (MongoException e) {
e.printStackTrace();
} }

查询数据库

好了  我本机上没有安装MongDB数据库用的IP地址和URL链接呢

java往MongDB导入大量数据的更多相关文章

  1. java 跨数据库导入大数据

    java 跨数据库导入大数据 /** * java程序跨服务器跨数据库批量导入导出百万级数据 * @param args * @throws Exception */ public static vo ...

  2. [Java] 高效快速导入EXCEL数据

    需求1.高效率的以excel表格的方式导入多条数据.2.以身份证号为唯一标识,如果身份证号已存在,则该条数据不导入. 分析刚开始的时候是传统的做法,解析excel数据,获取单个对象,判断身份证是否已存 ...

  3. java 使用poi 导入Excel 数据到数据库

    由于我个人电脑装的Excel是2016版本的,所以这地方我使用了XSSF 方式导入 . 1先手要制定一个Excel 模板 把模板放入javaWeb工程的某一个目录下如图: 2模板建好了后,先实现模板下 ...

  4. java调用sqlldr导入csv文件数据到临时表

    package cn.com.file;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File; ...

  5. Java利用POI导入导出Excel中的数据

         首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据.下面POI包的下载地 ...

  6. java 使用POI批量导入excel数据

    一.定义 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二.所需jar包: 三.简单的一个读取e ...

  7. JAVA通过poi对Excel数据在(jsp+ssh)环境下导入导出

    POI的下载与安装  请到网站http://www.apache.org/dyn/closer.cgi/poi/右击超链接2.5.1.zip下载压缩包poi-bin-2.5.1-final-20040 ...

  8. java小技巧:如何分批次导入大量数据

    //List 需要导入的数据int count = 1000;//每批次导入的数目int Lastindex = count;List<List<T>> shareList = ...

  9. Oracle如何导入导出数据(转自)

    导出:exp ssht/taxware@sshtfile=d:\ssht.dmpexp 用户名/密码@服务名导入:imp ssht/taxware@mysshtfile=d:\ssht.dmp fro ...

随机推荐

  1. 无法添加注解@Resource

    Spring项目中缺少javax.annotation包的依赖

  2. C语言多种方法求解字符串编辑距离问题的代码

    把做工程过程经常用的内容记录起来,如下内容段是关于C语言多种方法求解字符串编辑距离问题的内容. { if(xbeg > xend) { if(ybeg > yend) return 0; ...

  3. k个一组翻转链表(java实现)

    题目: 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序. 示例 : 给定这 ...

  4. samtools 使用简述

    功能如下: 1.View 主要功能讲sam文件转位bam文件. 涉及的参数: -b 输出bam格式..默认是sam文件 -h 输出的sam文件带header..默认不带 -H 仅仅输出header - ...

  5. label 的for属性总结

    一.使用介绍 1. 定义:for属性规定label与哪个表单元素绑定. <label>是专门为<input>元素服务的,为其定义标记. label 和表单控件绑定方式有两种: ...

  6. Android测试(三)——burpsuite抓包设置

    导出证书: 将证书导入模拟器中: 设置监听端口,透明代理(一定要设置这个): 进入adb shell,输入如下命令,即可抓包了:  iptables -t nat -A OUTPUT -p tcp - ...

  7. git reset 和 git revert 使用区别

    git reset 用于回退代码,但是git pull后会和远程分支保持一致,所以无法修改远程代码 git revert可以撤销代码,撤销后直接git push ,可以修改远程分支的代码

  8. AOP之配置文件实现

    看了http://www.cnblogs.com/xrq730/p/4919025.html这篇文章之后自己跟着做了一遍,有需要可以去看原文,比我写的更详细. AOP AOP(Aspect Orien ...

  9. oracle 夸服务器、数据库查询

      create public database link 连接名 connect to 需要连接数据库名 identified by  需要连接数据库密码 USING '(DESCRIPTION = ...

  10. 在OAF页面中集成ECharts以及highcharts用于显示图表

    历史博文中有讲解在请求中输出基础图表的方式,见地址:EBS 请求输出Html报表集成Echarts 本文讲述在OAF中集成这两类图表. 集成的基本思路:在OAF页面中加入一个rawText组件,在ra ...