java往MongDB导入大量数据
好几月没写博客了~~~
---------------------
在公司最近在搞用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导入大量数据的更多相关文章
- java 跨数据库导入大数据
java 跨数据库导入大数据 /** * java程序跨服务器跨数据库批量导入导出百万级数据 * @param args * @throws Exception */ public static vo ...
- [Java] 高效快速导入EXCEL数据
需求1.高效率的以excel表格的方式导入多条数据.2.以身份证号为唯一标识,如果身份证号已存在,则该条数据不导入. 分析刚开始的时候是传统的做法,解析excel数据,获取单个对象,判断身份证是否已存 ...
- java 使用poi 导入Excel 数据到数据库
由于我个人电脑装的Excel是2016版本的,所以这地方我使用了XSSF 方式导入 . 1先手要制定一个Excel 模板 把模板放入javaWeb工程的某一个目录下如图: 2模板建好了后,先实现模板下 ...
- java调用sqlldr导入csv文件数据到临时表
package cn.com.file;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File; ...
- Java利用POI导入导出Excel中的数据
首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据.下面POI包的下载地 ...
- java 使用POI批量导入excel数据
一.定义 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二.所需jar包: 三.简单的一个读取e ...
- 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 ...
- java小技巧:如何分批次导入大量数据
//List 需要导入的数据int count = 1000;//每批次导入的数目int Lastindex = count;List<List<T>> shareList = ...
- Oracle如何导入导出数据(转自)
导出:exp ssht/taxware@sshtfile=d:\ssht.dmpexp 用户名/密码@服务名导入:imp ssht/taxware@mysshtfile=d:\ssht.dmp fro ...
随机推荐
- 【Redis】windows下redis服务的安装
下载地址: https://github.com/MicrosoftArchive/redis/releases Redis 支持 32 位和 64 位.这个需要根据你系统平台的实际情况选择,这里我们 ...
- 内网环境使用ansible安装software 需要外网时,如何绑定代理呢
内网环境使用ansible安装software 需要外网时,如何绑定代理呢? 方法一: 在ansible 的脚本里,yum install 的地方,添加语句: environment: https_p ...
- postgres 11 单实例最大支持多少个database?
有人在pg8时代(10年前)问过,当时说10000个没问题,而且每个db会在/base下建立1个文件夹, 文件ext3只支持32000个子文件夹,所以这是上限了. 而现在早就ext4了,根本没有限制了 ...
- mac 中git操作账号的保存与删除
保存: 在mac中自动保存git的用户名和密码很简单,只需要在终端命令行中输入下面的命令就是: git config --global credential.helper osxkeychain 然后 ...
- vue中的路由
路由配置项: import Router from ‘vue-router’ 1.path:路径 ...
- Map、List、Set在Java中的各种遍历方法
一.Map的4种遍历 Map<String, String> map = new HashMap<String, String>(); map.put("姓名&quo ...
- Qt 滚动窗口类
{ QScrollArea *scrollArea = new QScrollArea(this); scrollArea->setFrameStyle(); scrollArea->se ...
- js的回调函数
介绍首先从英文介绍开始 A callback is a function that is passed as an argument to another function and is execut ...
- Tomcat启动后,访问页面报404错误解决方法
Tomcat正常启动后,出现如下情况 提供一个参考解决方法: 1.双击servers 2.把Server Locations设置为User Tomcat installation 保存后再次访问页面就 ...
- servlet(3)
常见的网络访问后缀: - .html : 网页 - .htm : 网页 - .php : php技术实现的动态网页 - .jsp : Java Server pages Java代码+HTML代码实现 ...