设为首页 收藏本站
查看: 975|回复: 0

[经验分享] java 操作mongodb插入、读取、修改以及删除基础

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-10 13:57:16 | 显示全部楼层 |阅读模式
package mongodb;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
/**
* java
* mongodb的数据插入、读取、更新、删除
*/
public class MongodbCRUD {
private static Mongo m = null;
private static DB db = null;
//数据集合名称
private static final String COLLECTION_NAME = "mcpang";
/*
* 测试java处理mongodb的增、删、改、查操作
*/
public static void main(String[] args) {
//获取数据库连接
startMongoDBConn();
//保存数据
createColData();
//读取数据
readColData();
//更新数据
updateColData();
//读取数据
readColData();
//删除数据
deleteColData();
//读取数据
readColData();
//删除数据集
db.getCollection(COLLECTION_NAME).drop();
//关闭数据库连接
stopMondoDBConn();
}
/**
* 数据插入
* *测试数据:
* 【name:小李、age:30、address:江苏南京】
* 【name:小张、age:25、address:江苏苏州】
* @return
*/
private static void createColData(){
DBCollection dbCol = db.getCollection(COLLECTION_NAME);
System.out.println("向数据集中插入数据开始:");
List<DBObject> dbList = new ArrayList<DBObject>();
BasicDBObject doc1 = new BasicDBObject();
doc1.put(&quot;name&quot;, &quot;小李&quot;);
doc1.put(&quot;age&quot;, 30);
doc1.put(&quot;address&quot;, &quot;江苏南京&quot;);
dbList.add(doc1);
BasicDBObject doc2 = new BasicDBObject();
doc2.put(&quot;name&quot;, &quot;小张&quot;);
doc2.put(&quot;age&quot;, 25);
doc2.put(&quot;address&quot;, &quot;江苏苏州&quot;);
dbList.add(doc2);
dbCol.insert(dbList);
System.out.println(&quot;向数据集中插入数据完成!&quot;);
System.out.println(&quot;------------------------------&quot;);
}
/**
* 数据读取
*/
private static void readColData(){
DBCollection dbCol = db.getCollection(COLLECTION_NAME);
DBCursor ret = dbCol.find();
System.out.println(&quot;从数据集中读取数据:&quot;);
while(ret.hasNext()){
BasicDBObject bdbObj = (BasicDBObject) ret.next();
if(bdbObj != null){
System.out.println(&quot;name:&quot;+bdbObj.getString(&quot;name&quot;));
System.out.println(&quot;age:&quot;+bdbObj.getInt(&quot;age&quot;));
System.out.println(&quot;address:&quot;+bdbObj.getString(&quot;address&quot;));
}
}
}
/**
* 数据更新
* update(q, o, upsert, multi)
* update(q, o, upsert, multi, concern)
* update(arg0, arg1, arg2, arg3, arg4, arg5)
* updateMulti(q, o)
*/
private static void updateColData(){
System.out.println(&quot;------------------------------&quot;);
DBCollection dbCol = db.getCollection(COLLECTION_NAME);
DBCursor ret = dbCol.find();
BasicDBObject doc = new BasicDBObject();
BasicDBObject res = new BasicDBObject();
res.put(&quot;age&quot;, 40);
System.out.println(&quot;将数据集中的所有文档的age修改成40!&quot;);
doc.put(&quot;$set&quot;, res);
dbCol.update(new BasicDBObject(),doc,false,true);
System.out.println(&quot;更新数据完成!&quot;);
System.out.println(&quot;------------------------------&quot;);
}
/**
* 数据删除
*/
private static void deleteColData(){
System.out.println(&quot;------------------------------&quot;);
DBCollection dbCol = db.getCollection(COLLECTION_NAME);
System.out.println(&quot;删除【小李】!&quot;);
BasicDBObject doc = new BasicDBObject();
doc.put(&quot;name&quot;, &quot;小李&quot;);
dbCol.remove(doc);
System.out.println(&quot;------------------------------&quot;);
}
/**
* 关闭mongodb数据库连接
*/
private static void stopMondoDBConn(){
if (null != m) {
if (null != db) {
// 结束Mongo数据库的事务请求
try {
db.requestDone();
} catch(Exception e) {
e.printStackTrace();
}
}
try
{
m.close();
} catch(Exception e) {
e.printStackTrace();
}
m = null;
db = null;
}
}
/**
* 获取mongodb数据库连接
*/
private static void startMongoDBConn(){
try {
//Mongo(p1, p2):p1=>IP地址     p2=>端口
m = new Mongo(&quot;127.0.0.1&quot;, 27017);
//根据mongodb数据库的名称获取mongodb对象
db = m.getDB(&quot;sdap&quot;);
//校验用户密码是否正确
if (!db.authenticate(&quot;sdap&quot;, &quot;sdap123&quot;.toCharArray())){
System.out.println(&quot;连接MongoDB数据库,校验失败!&quot;);
}else{
System.out.println(&quot;连接MongoDB数据库,校验成功!&quot;);
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
}
}

  


  执行结果:
  连接MongoDB数据库,校验成功!

向数据集中插入数据开始:

向数据集中插入数据完成!

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

从数据集中读取数据:

name:小李

age:30

address:江苏南京

name:小张

age:25

address:江苏苏州

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

将数据集中的所有文档的age修改成40!

更新数据完成!

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

从数据集中读取数据:

name:小李

age:40

address:江苏南京

name:小张

age:40

address:江苏苏州

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

删除【小李】!

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

从数据集中读取数据:

name:小张

age:40

address:江苏苏州


  
  

版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-137590-1-1.html 上篇帖子: mongodb源码分析(四)查询1之mongo的查询请求 下篇帖子: php脚本(功能ios/android推送;技术mongodb队列,MQTT,锁文件。linux运行)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表