好几月没写博客了~~~

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

在公司最近在搞用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. 在linux 上安装ansible

    ansible 在线安装:yum install -y epel-releaseyum install -y ansible离线安装:rpm wget https://releases.ansible ...

  2. http协议详解及htt面试题目,常见的http状态码

    http协议详解及htt面试题目,常见的http状态码 HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的.HTTP有两类报文:请求报文和响应报文. HTTP ...

  3. 20175317 《Java程序设计》第八周学习总结

    20175317 <Java程序设计>第八周学习总结 教材学习内容总结 第八周我学习了教材第十五章的内容,认识了什么是泛型与集合框架,具体内容如下: 泛型 1. 如何声明泛型类 2. 如何 ...

  4. LeetCode--036--有效的数独(java)

    判断一个 9x9 的数独是否有效.只需要根据以下规则,验证已经填入的数字是否有效即可. 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 1-9 在每一个以粗实线分隔的 ...

  5. channels 2.x的使用

    转载:https://www.vimiix.com/post/2018/07/26/channels2-tutorial/ 认识 Channels 之前,需要先了解一下 asgi ,全名:Asynch ...

  6. 在Windows Server 2012下安装 php memcache模块

    一.环境描述 操作系统:Windows Server 2012 R2 Datacenter Web服务提供软件:Microsoft IIS 8.5.9600.16384 IIS调用PHP方法:增加处理 ...

  7. 下载网站js css img 资源

  8. background——背景属性

    一.背景属性 1.1.背景颜色background-color <style> /*浮动,横向排列*/ div{float: left;} /*background-color属性值支持三 ...

  9. 【分享】JS如何为复制的Web文本添加其他信息

    看到了两篇关于这题的讨论,简单的记录一下!o(* ̄▽ ̄*)ブ 1.  stackoverflow , How to add extra info to copied web text 2.  黑客派, ...

  10. Spring框架中获取连接池的几种方式

    什么是数据库连接池? 数据库连接池是一种关键的有限的昂贵的资源,对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池就是用来解决这些问题而提出的. 数据库连接 ...