好几月没写博客了~~~

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

在公司最近在搞用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. 【Redis】windows下redis服务的安装

    下载地址: https://github.com/MicrosoftArchive/redis/releases Redis 支持 32 位和 64 位.这个需要根据你系统平台的实际情况选择,这里我们 ...

  2. 内网环境使用ansible安装software 需要外网时,如何绑定代理呢

    内网环境使用ansible安装software 需要外网时,如何绑定代理呢? 方法一: 在ansible 的脚本里,yum install 的地方,添加语句: environment: https_p ...

  3. postgres 11 单实例最大支持多少个database?

    有人在pg8时代(10年前)问过,当时说10000个没问题,而且每个db会在/base下建立1个文件夹, 文件ext3只支持32000个子文件夹,所以这是上限了. 而现在早就ext4了,根本没有限制了 ...

  4. mac 中git操作账号的保存与删除

    保存: 在mac中自动保存git的用户名和密码很简单,只需要在终端命令行中输入下面的命令就是: git config --global credential.helper osxkeychain 然后 ...

  5. vue中的路由

           路由配置项:        import Router from ‘vue-router’                          1.path:路径              ...

  6. Map、List、Set在Java中的各种遍历方法

    一.Map的4种遍历 Map<String, String> map = new HashMap<String, String>(); map.put("姓名&quo ...

  7. Qt 滚动窗口类

    { QScrollArea *scrollArea = new QScrollArea(this); scrollArea->setFrameStyle(); scrollArea->se ...

  8. js的回调函数

    介绍首先从英文介绍开始 A callback is a function that is passed as an argument to another function and is execut ...

  9. Tomcat启动后,访问页面报404错误解决方法

    Tomcat正常启动后,出现如下情况 提供一个参考解决方法: 1.双击servers 2.把Server Locations设置为User Tomcat installation 保存后再次访问页面就 ...

  10. servlet(3)

    常见的网络访问后缀: - .html : 网页 - .htm : 网页 - .php : php技术实现的动态网页 - .jsp : Java Server pages Java代码+HTML代码实现 ...