【MongoDB数据库】Java MongoDB CRUD Example
上一页告诉我们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、你可能感兴趣
转载请注明出处:http://blog.csdn.net/andie_guo/article/details/26098331,谢谢!
版权声明:本文博客原创文章。博客,未经同意,不得转载。
【MongoDB数据库】Java MongoDB CRUD Example的更多相关文章
- 【MongoDB数据库】MongoDB 命令入门初探
MongoDB是一款NoSql数据库,使用了"面向集合"(Collection-Oriented)原理,意思是数据被分组存储在数据集中,被称为一个集合(Collection).每一 ...
- 【MongoDB数据库】怎样安装、配置MongoDB
本blog以最简洁的方式记录了博主在折腾MongoDB过程中点点滴滴,当中包含下载MongoDB.配置环境变量.怎样启动MongoDBserver.怎样连接MongoDBserver以及怎样连接Mon ...
- MongoDB数据库的简介及安装
一.MongoDB数据库简介 简介 MongoDB是一个高性能,开源,无模式的,基于分布式文件存储的文档型数据库,由C++语言编写,其名称来源取自“humongous”,是一种开源的文档数据库──No ...
- node.js操作数据库之MongoDB+mongoose篇
前言 node.js的出现,使得用前端语法(javascript)开发后台服务成为可能,越来越多的前端因此因此接触后端,甚至转向全栈发展.后端开发少不了数据库的操作.MongoDB是一个基于分布式文件 ...
- Java + MongoDB Hello World Example--转载
原文地址:http://www.mkyong.com/mongodb/java-mongodb-hello-world-example/ A simple Java + MongoDB hello w ...
- update document in mongodb using java -摘自网络
update document in mongodb using java: Mongodb driver provides functionality to update document in m ...
- Python连接MongoDB数据库并执行操作
原文:https://blog.51cto.com/1767340368/2092813 环境设置: [root@mongodb ~]# cat /etc/redhat-release CentOS ...
- [MongoDB]MongoDB与JAVA结合使用CRUD
汇总: 1. [MongoDB]安装MongoDB2. [MongoDB]Mongo基本使用:3. [MongoDB]MongoDB的优缺点及与关系型数据库的比较4. [MongoDB]MongoDB ...
- MongoDB的安装与CRUD(JAVA)
http://blogread.cn/it/article/4348?f=wb (MongoDB) 安装: 1)下载MongoDB数据库(这里使用Windows 32 bit版) http://dow ...
随机推荐
- List、Map和Set实现类
List.Map和Set实现类 1.List实现类 (1)ArrayList (2)Vector 2.Map实现类 (1)HashMap (2)Hashtable 3.Set实现类 (1)HashSe ...
- PHP关联数组和哈希表(hash table) 未指定
PHP有数据的一个非常重要的一类,就是关联数组.又称为哈希表(hash table),是一种很好用的数据结构. 在程序中.我们可能会遇到须要消重的问题,举一个最简单的模型: 有一份username列表 ...
- 读书笔记之SQL注入漏洞和SQL调优
原文:读书笔记之SQL注入漏洞和SQL调优 最近读了程序员的SQL金典这本书,觉得里面的SQL注入漏洞和SQL调优总结得不错,下面简单讨论下SQL注入漏洞和SQL调优. 1. SQL注入漏洞 由于“' ...
- 版本管理软件VisualSVN、TortoiseSvn、AnkhSvn 后记
原文:版本管理软件VisualSVN.TortoiseSvn.AnkhSvn 后记 前些天我写了几篇关于VisualSVN .TortoiseSVN.AnkhSvn这几个软件配置管理的文章,但是当时没 ...
- 它们的定义PropertyPlaceHolder无法完成更换任务
Spring默认PropertyPlaceholderConfigurer只能加载properties格风格简介,现在,我们需要能够从类的完整支持允许似hadoop格风格xml配置文件读取配置信息,并 ...
- hdu4496 D-City(扭转和支票托收啊 )
主题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4496 D-City Problem Description Luxer is a really bad ...
- epoll演示样本
server参考是别人的代码 #include <stdio.h> #include <stdlib.h> #include <errno.h> #include ...
- 小牟Andorid下面MD5具体实现的思路总结
Android的开发往往需要一定数目demo 从今起MD5一些加密算法提取物 看看是如何实现的 首先,我们必须明确为什么加密? 1 数据安全处理 2 防止数据窃取 3 有效的避免恶意攻击 4 保证文件 ...
- Android 布局管理器
为了更好地管理Android应用程序的用户界面组件,Android它提供了一个布局管理.通过使用布局管理,Android具有良好的平台无关的图形用户界面应用程序. 平时,推荐布局管理器来管理分布式组件 ...
- ACdreamoj1110(多重背包)
意甲冠军:多个裸露的双肩背包.水的问题. 解决方法:然背包一样,仅仅只是加一个数组,记录着每一个物品用过的次数,多于存储量时就pass不更新. 另一种方法是将每一个物品用二进制压缩处理.第一个代码比較 ...