mongodb之java CRUD 简单操作
我下载的是 mongo-2.8.0.jar — Version 2.8.0
打开mongo shell -- 新建数据库test --( use test)
打开eclipse新建工程,把junit,mongo-2.8.0.jar导入。
新建测试类如下:
package com.db;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import org.bson.types.ObjectId;
import org.junit.After;
import org.junit.Test;
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;
public class DBUtils {
private static Mongo mongo;
private static DB db;
static {
try {
mongo = new Mongo("localhost", 27017);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
db = mongo.getDB("test");
}
@After
public void output() {
// 测试完显示所有
DBCollection dbc = db.getCollection("user");
DBCursor cursor = dbc.find();
while (cursor.hasNext()) {
// cursor.next就是一行记录(一个文档)
System.out.println(cursor.next());
}
}
@Test
public void testInsert() throws Exception {
DBCollection dbc = db.getCollection("user");
DBObject object = new BasicDBObject();
object.put("username", "zdw");
object.put("password", "123");
// 一个人有一个职位
// 数据库json格式:{username:"zdw",password:"123",position:{name:"工程师"}}
BasicDBObject o = new BasicDBObject();
o.put("name", "经理");
object.put("position", o);
dbc.insert(object);
object = new BasicDBObject();
object.put("username", "zhangjun");
object.put("password", "456");
// 一个人有多个职位(一个文档里有多个文档)
// 数据库json格式:{username:"zhangjun",password:"456",position:[{name:"工程师"},{name:"设计师"}]}
List<Object> list = new ArrayList<Object>();
o = new BasicDBObject();
o.put("name", "工程师");
list.add(o);
o = new BasicDBObject();
o.put("name", "设计师");
list.add(o);
object.put("position", list);
dbc.insert(object);
}
// 删除指定
@Test
public void testRemoveOne() throws Exception {
DBCollection dbc = db.getCollection("user");
DBObject o = new BasicDBObject();
o.put("username", "zhangjun");
dbc.remove(o);
}
@Test
public void testModify() throws Exception {
DBCollection dbc = db.getCollection("user");
// 根据id修改密码,需要加$set,否则所有记录的password都会被修改,其它字段删除。
int result = dbc.update(
new BasicDBObject("_id", new ObjectId(
"4ff8eaa65dbc67340278a07c")),
new BasicDBObject("$set", new BasicDBObject("password",
"4444"))).getN();
System.out.println(result);
}
@Testhttp://www.shengshiyouxi.com
public void testRemove() throws Exception {
DBCollection dbc = db.getCollection("user");
// 删除全部
dbc.drop();
}
// 查询指定
@Test
public void testFindOne() throws Exception {
DBCollection dbc = db.getCollection("user");
DBObject o = new BasicDBObject();
o.put("username", "zdw");
DBObject obj = dbc.findOne(o);
System.out.println(obj);
}
}
这种key-value存储方式,操作很方便。
源码下载
mongodb之java CRUD 简单操作的更多相关文章
- github上创建java项目简单操作
github上创建java项目简单操作 参考L: github上创建java项目简单操作 - CSDN博客http://blog.csdn.net/qq_29392425/article/detail ...
- MongoDB快速入门学习笔记2 MongoDB的概念及简单操作
1.以下列举普通的关系型数据库和MongoDB数据库简单概念上的区别: 关系型数据库 MongoDB数据库 说明 database database 数据库 table collection 数据库表 ...
- Mongodb系列- java客户端简单使用(CRUD)
Mongodb提供了很多的客户端: shell,python, java, node.js...等等. 以 java 为例实现简单的增删改查 pom文件: <dependencies> & ...
- Java 数据库简单操作类
数据库操作类,将所有连接数据库的配置信息以及基本的CRUD操作封装在一个类里,方便项目里使用,将连接数据库的基本信息放在配置文件 "dbinfo.properties" 中,通过类 ...
- 【MongoDB】5.MongoDB与java的简单结合
1.首先 你的清楚你的MongoDB的版本是多少 就下载对应的架包 下载地址如下: http://mongodb.github.io/mongo-java-driver/ 2.新建一个项目 把架包 ...
- python下的orm基本操作(1)--Mysql下的CRUD简单操作(含源码DEMO)
最近逐渐打算将工作的环境转移到ubuntu下,突然发现对于我来说,这ubuntu对于我这种上上网,收收邮件,写写博客,写写程序的时实在是太合适了,除了刚接触的时候会不怎么完全适应命令行及各种权限管理, ...
- 跟着大神学Mongo,Mongodb主从复制本机简单操作总结
原文链接:http://www.cnblogs.com/huangxincheng/archive/2012/03/04/2379755.html 本机安装MongoDB不在介绍,本文Mongo小菜鸟 ...
- zookeeper Java API 简单操作示例
本文主要介绍如何在java IDE中如何应用使用客户端与zookeeper服务器通信. 首先搭建maven环境,并在pom文件中加入zookeeper引用包: <!-- https://mvnr ...
- mongodb的安装与简单操作
MongoDB中文社区:http://www.mongoing.com 数据库的使用场景 SQL(关系型数据库):MySQL.SQLServer --->磁盘操作 1.高度事务性的场景 ...
随机推荐
- VC GDI双缓冲机制绘图防屏幕闪烁实现步骤
在OnDraw(CDC* pDC) 中添加如下代码 CDC MemDC; //首先定义一个显示设备对象 CBitmap MemBitmap;//定义一个位图对象 //随后建立与屏幕显示兼容的内存显示设 ...
- Ext图表的精彩
最近做了几个Ext的图表,觉得效果还不错,分享一下 1.Chart[饼图.折线图.柱状图.堆状图]: 2.Grid: 3.最大化:
- JavaScript权威指南科20章 client记忆
20 client记忆 client几种形式存储的: web记忆 cookie IE userData 离线应用 web数据库 文件系统api 20.1 localStorage 和 sessionS ...
- VS2012配置astyle格式化代码
1.工具->扩展和更新,搜astyle插件,下载安装重启,当前是2.0版本. 2.工具->选项->AStyle Formatter->Edit,填入下面的,点击save,确定. ...
- UNICODE和ANSI字符串的转换(解释了MultiByteToWideChar,WideCharToMultiByte,GetTextCharsetInfo,GetTextCharset,IsDBCSLeadByte,IsDBCSLeadByteEx,IsTextUnicode一共7个函数)
继上集故事<多字符集(ANSI)和UNICODE及字符串处理方式准则 >,我们现在有一些特殊需求: 有时候我们的字符串是多字符型,我们却需要使用宽字符型:有的时候却恰恰相反. Window ...
- 引用类中的enum
引用类中的enum 引用类中的enum,需要加类的域class_name::value_in_enum_name 点击(此处)折叠或打开 #include <stdio.h> #inclu ...
- HDU 4921 Map
题意: 给n个节点 他们形成了最多10条链 每条最多1000的长度 每一个节点有个val 你能够选择任何位置截断链 断点前的全部节点被你获得 通过题中计算公式得出你的val 问 通过随 ...
- Queue 消息的发送与接收(PTP 消息传递模型)
上篇博客写到了JMS两种消息模型(P2P.pub/sub)<JMS两种消息模型>.本篇博客通过一个实例来进一步了解P2P模型. Queue消息的发送与接收--PTP消息传递模型,样例: Q ...
- Oracle的dbms_output包的put()和put_line()的区别只是有没有回车换行吗?(转)
答案是否 除了自动添加回车换行外,还有就是缓冲区最大容量的问题!! 无论如何设置serveroutput size,10g里 put() 最多只能输出 32767 个byte 而 put_line() ...
- 14.4.2 Configuring InnoDB for Read-Only Operation 配置InnoDB 永于只读操作:
14.4.2 Configuring InnoDB for Read-Only Operation 配置InnoDB 永于只读操作: 你可以查询InnoDB 表 MySQL 数据目录是在只读介质里,通 ...