【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 ...
随机推荐
- Spring3 MVC请求参数获取的几种场景
访问/aaa/bbb所对应的@Controller @RequestMapping("/aaa")//类级别,可以不需要,如果要了,下面所有的请求路径前都需要加入/aaa publ ...
- 矢量编程——随着MNIST案例
矢量编程使用的所有明确的矢量运算,而不是for周期. 上一节所用的是512*512*10的数据集非常小.我们取的patch非常小(8*8),学来的特征非常少(25).而我又凝视掉了梯度校验(偷懒),所 ...
- T4模板合并js
使用T4模板合并js文件 不知道该怎么表达,或许直接贴图贴代码更好 前因:在第一个使用angularjs的项目中我将所有的controller写到一个文件里面,深知维护起来那滋味,所以再次使用angu ...
- Android尽量避免使用开发jpg图片
因为jpgeasy失真,因此,Android尽量避免使用开发.jpg图片,相反,使用.png图片,它使用LZ77衍生无损数据压缩算法. 事实上在这一点上,Google他已经暗示我们: 发现了没有,在r ...
- mac提升yosemite后php 扩展修复
mac升级之后 php 正积极提升自己,导致php环境破坏 所以 例如有以下几点需要修复 1. sudo ln -s /Applications/Xcode.app/Contents/Develope ...
- 如何嗅闻交换网络和ARP骗子-ARP解释的原则
在嗅探以太网(一般指嗅探器可以对流经的网络数据包窃听)(sniff)不为网络安全是好事,虽然网络管理员能够跟踪数据包,发现 互联网问题,但前提是,如果破坏者使用.在整个网络带来了严重的安全威胁. 至于 ...
- 关于.NET,.NET Framework 和ASP.NET的总结
.NET 1.1. .NET是 Microsoft XML Web services 平台和技术. 1.2. 一个.NET应用是一个运行于.NET Framework之上的 ...
- iOS开发无第三方控件的援助达到的效果侧边栏
最近的研究iOS程序侧边栏.渐渐的发现iOS该方案还开始采取风侧边栏格该,QQ,今日头条,Path(Path运营商最早的侧边栏app该,效果说成是Path效果),所以就研究了下. 然后发现Git Hu ...
- 在android移动设备上登录gmail的时候报password错误解决方法!!!!
今天刚发现的解决的方法:就是登录web端的gmail,查看收件箱应该有no-reply这一帐户给你发过邮件(假设没有,你在移动设备上登录一下gmail).照着邮件里的说明去做,就是生成一个专门应用的p ...
- Oracle to_char,to_date
一.在oracle中,当想把字符串为‘2011-09-20 08:30:45’的格式转化为日期格式,我们可以使用oracle提供的to_date函数. sql语句为: SELECT to_date(' ...