上一页告诉我们MongoDB 命令入门初探,本篇blog将基于上一篇blog所建立的数据库和表完毕一个简单的Java MongoDB CRUD Example。利用Java连接MongoDB数据库,并实现创建数据库、获取表、遍历表中的对象、对表中对象进行CRUD操作等例程。

1、下载MongoDB Java 支持驱动包

【gitHub下载地址】https://github.com/mongodb/mongo-java-driver/downloads

2、建立Javaproject,并导入jar包

3、连接本地数据库server

在控制面板中开启Mongodb服务,详细操作可參考【MongoDB数据库】怎样安装、配置MongoDB

		try {
mongo = new MongoClient("localhost", 27017);// 保证MongoDB服务已经启动
db = mongo.getDB("andyDB");// 获取到数据库
} catch (UnknownHostException e) {
e.printStackTrace();
}

3、遍历全部的数据库名

public class DBConnection extends TestCase {

	private MongoClient mongo;
private DB db ; @Override
protected void setUp() throws Exception {
// TODO Auto-generated method stub
super.setUp();
try {
mongo = new MongoClient("localhost", 27017);// 保证MongoDB服务已经启动
db = mongo.getDB("andyDB");// 获取到数据库andyDB
} catch (UnknownHostException e) {
e.printStackTrace();
}
} public void testGetAllDB() {
List<String> dbs = mongo.getDatabaseNames();// 获取到全部的数据库名
for (String dbname : dbs) {
System.out.println(dbname);
}
}
}

4、获取到指定数据库

       DB db = mongo.getDB("andyDB");// 获取到数据库

5、遍历数据库中全部的表名

在DBConnection測试类中加入例如以下測试方法就可以:

	public void testGetAllTables() {
Set<String> tables = db.getCollectionNames();
for (String coll : tables) {
System.out.println(coll);
}
}

6、获取到指定的表

DBCollection table = db.getCollection("person");

7、遍历表中全部的对象

public void testFindAll(){
DBCollection table = db.getCollection("person");
DBCursor dbCursor = table.find();
while(dbCursor.hasNext()){
DBObject dbObject = dbCursor.next();
//打印该对象的特定字段信息
System.out.println("name:"+ dbObject.get("name")+",age:"+dbObject.get("age"));
//打印该对象的全部信息
System.out.println(dbObject);
}
}

Console窗体打印消息:

name:jack,age:50.0

{ "_id" : { "$oid" : "537761da2c82bf816b34e6cf"} , "name" : "jack" , "age" : 50.0}

name:小王,age:24

{ "_id" : { "$oid" : "53777096d67d552056ab8916"} , "name" : "小王" , "age" : 24}

8、保存对象

1)保存对象方法一

	public void testSave() {
DBCollection table = db.getCollection("person");
BasicDBObject document = new BasicDBObject();
document.put("name", "小郭");// 能直接插入汉字
document.put("age", 24);//"age"相应的值是int型
table.insert(document);
}

在mongodb shell中使用命令查看数据

> db.person.find()

{ "_id" : ObjectId("537761da2c82bf816b34e6cf"), "name" : "jack", "age" : 50 }

{ "_id" : ObjectId("53777096d67d552056ab8916"), "name" : "小王", "age" : 24 }

{ "_id" : ObjectId("5377712cd67d84f62c65c4f6"), "name" : "小郭", "age" : 24 }

2)保存对象方法二

	public void testSave2() {
DBCollection table = db.getCollection("person");
BasicDBObject document = new BasicDBObject();//能够加入多个字段
document.put("name", "小张");// 能直接插入汉字
document.put("password", "xiaozhang");// 多加入一个字段也是能够的,由于MongoDB保存的是对象。
document.put("age", "23");//"age"相应的值是String
table.insert(document);
}

在mongodb shell中使用命令查看数据

> db.person.find()

{ "_id" : ObjectId("537761da2c82bf816b34e6cf"), "name" : "jack", "age" : 50 }

{ "_id" : ObjectId("53777096d67d552056ab8916"), "name" : "小王", "age" : 24 }

{ "_id" : ObjectId("5377712cd67d84f62c65c4f6"), "name" : "小郭", "age" : 24 }

{ "_id" : ObjectId("53777230d67dfe576de5079a"), "name" : "小张", "password" : "xiaozhang", "age" : "23" }

3)保存对象方法三(通过加入Map集合的方式加入数据到BasicDBObject)

	public void testSave3(){
DBCollection table = db.getCollection("person"); Map<String,Object> maps = new HashMap<String,Object>();
maps.put("name", "小李");
maps.put("password", "xiaozhang");
maps.put("age", 24); BasicDBObject document = new BasicDBObject(maps);//这样加入后,对象里的字段是无序的。 table.insert(document);
}

在mongodb shell中使用命令查看数据

> db.person.find()

{ "_id" : ObjectId("537761da2c82bf816b34e6cf"), "name" : "jack", "age" : 50 }

{ "_id" : ObjectId("53777096d67d552056ab8916"), "name" : "小王", "age" : 24 }

{ "_id" : ObjectId("5377712cd67d84f62c65c4f6"), "name" : "小郭", "age" : 24 }

{ "_id" : ObjectId("53777230d67dfe576de5079a"), "name" : "小张", "password" : "xiaozhang", "age" : "23" }

{ "_id" : ObjectId("537772e9d67df098a26d79a6"), "age" : 24, "name" : "小李", "password" : "xiaozhang" }

9、更新对象

我们能够结合【mongodb shell命令】db.person.update({name:"小李"},{$set:{password:"hello"}})来理解Java是怎样操作对象来更新的。{name:"小李"}是一个BasicDBObject,{$set:{password:"hello"}也是一个BasicDBObject。这样理解的话。你就会认为mongodb
shell命令操作和Java操作非常相似。

	public void testUpdate() {
DBCollection table = db.getCollection("person");
BasicDBObject query = new BasicDBObject();
query.put("name", "小张"); BasicDBObject newDocument = new BasicDBObject();
newDocument.put("age", 23); BasicDBObject updateObj = new BasicDBObject();
updateObj.put("$set", newDocument);
table.update(query, updateObj);
} // 命令操作:db.person.update({name:"小李"},{$set:{password:"hello"}})
public void testUpdate2() {
DBCollection table = db.getCollection("person");
BasicDBObject query = new BasicDBObject("name", "小张");
BasicDBObject newDocument = new BasicDBObject("age", 24);
BasicDBObject updateObj = new BasicDBObject("$set", newDocument);
table.update(query, updateObj);
}

10、删除对象

可參考db.users.remove({name:"小李"})命令来理解Java操作对象

	public void testDelete(){
DBCollection table = db.getCollection("person");
BasicDBObject query = new BasicDBObject("name", "小李");
table.remove(query);
}

11、參考

Java + MongoDB Hello World Example(推荐)

12、你可能感兴趣

【MongoDB数据库】怎样安装、配置MongoDB

【MongoDB数据库】MongoDB 命令入门初探

转载请注明出处:http://blog.csdn.net/andie_guo/article/details/26098331,谢谢!

版权声明:本文博客原创文章。博客,未经同意,不得转载。

【MongoDB数据库】Java MongoDB CRUD Example的更多相关文章

  1. 【MongoDB数据库】MongoDB 命令入门初探

    MongoDB是一款NoSql数据库,使用了"面向集合"(Collection-Oriented)原理,意思是数据被分组存储在数据集中,被称为一个集合(Collection).每一 ...

  2. 【MongoDB数据库】怎样安装、配置MongoDB

    本blog以最简洁的方式记录了博主在折腾MongoDB过程中点点滴滴,当中包含下载MongoDB.配置环境变量.怎样启动MongoDBserver.怎样连接MongoDBserver以及怎样连接Mon ...

  3. MongoDB数据库的简介及安装

    一.MongoDB数据库简介 简介 MongoDB是一个高性能,开源,无模式的,基于分布式文件存储的文档型数据库,由C++语言编写,其名称来源取自“humongous”,是一种开源的文档数据库──No ...

  4. node.js操作数据库之MongoDB+mongoose篇

    前言 node.js的出现,使得用前端语法(javascript)开发后台服务成为可能,越来越多的前端因此因此接触后端,甚至转向全栈发展.后端开发少不了数据库的操作.MongoDB是一个基于分布式文件 ...

  5. Java + MongoDB Hello World Example--转载

    原文地址:http://www.mkyong.com/mongodb/java-mongodb-hello-world-example/ A simple Java + MongoDB hello w ...

  6. update document in mongodb using java -摘自网络

    update document in mongodb using java: Mongodb driver provides functionality to update document in m ...

  7. Python连接MongoDB数据库并执行操作

    原文:https://blog.51cto.com/1767340368/2092813 环境设置: [root@mongodb ~]# cat /etc/redhat-release CentOS ...

  8. [MongoDB]MongoDB与JAVA结合使用CRUD

    汇总: 1. [MongoDB]安装MongoDB2. [MongoDB]Mongo基本使用:3. [MongoDB]MongoDB的优缺点及与关系型数据库的比较4. [MongoDB]MongoDB ...

  9. MongoDB的安装与CRUD(JAVA)

    http://blogread.cn/it/article/4348?f=wb (MongoDB) 安装: 1)下载MongoDB数据库(这里使用Windows 32 bit版) http://dow ...

随机推荐

  1. paip.提高工作效率--数据绑定到table原则和过程Angular js jquery实现

    paip.提高工作效率--数据绑定到table原理和流程Angular js  jquery实现 html #--keyword 1 #---原理和流程 1 #----jq实现的代码 1 #----- ...

  2. Gas Station [leetcode] 两个解决方案

    因为gas的总数大于cost总时间.你将能够圈住整个城市. 第一溶液: 如果一開始有足够的油.从位置i出发.到位置k时剩余的油量为L(i,k). 对随意的k.L(i,k)依据i的不同,仅仅相差常数. ...

  3. linux基础知识1

    1. 硬盘分区 分区类型:主分区,扩展分区.逻辑分区: 分区规则: 一个硬盘仅仅能有1到4个主分区: 一个硬盘仅仅能有1个扩展分区: 一个硬盘的主分区和扩展分区最多仅仅能有4个. 扩展分区仅仅能用来包 ...

  4. Java知多少(87)选择框和单选按钮(转)

    选择框.单选框和单选按钮都是选择组件,选择组件有两种状态,一种是选中(on),另一种是未选中(off),它们提供一种简单的 “on/off”选择功能,让用户在一组选择项目中作选择. 选择框 选择框(J ...

  5. hdu 4454 Stealing a Cake(三分之二)

    pid=4454" target="_blank" style="">题目链接:hdu 4454 Stealing a Cake 题目大意:给定 ...

  6. LR杂记 - loadrunner各项指标结果分析

    Transactions (用户事务分析) 用户事务分析是站在用户角度进行的基础性能分析. 1 . Transation Sunmmary (事务综述) 对事务进行综合分析是性能分析的第一步,通过分析 ...

  7. AspNet MVC4 教育-28:Asp.Net MVC4 Ajax技术部门四舍五入余速Demo

    A.创建一个Basic项目类型. B.于Models创建一个文件夹: DivModel.cs: using System; using System.Collections.Generic; usin ...

  8. HihoCoder——Trie树

    本文出自:http://blog.csdn.net/svitter 原题:http://hihocoder.com/contest/hiho2/problem/1 题解:使用Trie树..基础题目.一 ...

  9. Visual Studio 原生开发的10个调试技巧(二)

    原文:Visual Studio 原生开发的10个调试技巧(二) 我以前关于 Visual Studio 调试技巧的文章引起了大家很大的兴趣,以至于我决定分享更多调试的知识.以下的列表中你可以看到写原 ...

  10. apache kafka系列之-监控指标

    apache kafka中国社区QQ群:162272557 1.监控目标 1.当系统可能或处于亚健康状态时及时提醒,预防故障发生 2.报警提示 a.短信方式 b.邮件 2.监控内容 2.1 机器监控 ...