http://blog.csdn.net/rjfxd/article/details/12110025
一、准备工作
1、建立maven项目,添加所需依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.11.3</version>
</dependency>
当然也可以建立java project,下载mongoDB对Java支持的驱动包,然后拷贝jar文件到lib下
2、开启mongo服务,建立测试类进行测试
二、完整源码如下:
- package com.shxt.mongo;
- import java.net.UnknownHostException;
- import java.util.ArrayList;
- import java.util.List;
- import org.bson.types.ObjectId;
- import org.junit.After;
- import org.junit.Before;
- 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.MongoClient;
- import com.mongodb.util.JSON;
- /**
- * MongDB之CRUD
- * @author 范晓东
- * @ClassName: TestMongo
- * @Version 1.0
- * @ModifiedBy
- * @Copyright shxt
- * @date 2013-9-27 下午08:21:49
- * @description
- */
- public class TestMongo {
- private Mongo mg = null;
- private DB db;
- private DBCollection users;
- @Before
- public void setUp() throws UnknownHostException {
- // 创建一个MongoDB的数据库连接对象
- mg=new MongoClient("localhost", 27017);
- //验证模式登录(如果不设置验证模块,可直接登录)
- //想要登录验证模块生效,需在命令行下输入1->mongo 2->use admin 3->db.addUser("root","root123"); 4->db.auth("root","root123");
- DB admin=mg.getDB("admin");
- boolean bool =admin.authenticate("root", "root123".toCharArray());
- if (bool){
- //login success
- //获得一个test的数据库,如果该数据库不存在,会自动创建
- db=mg.getDB("test");
- }
- // 获取一个聚集集合DBCollection,相当于我们的数据库表
- users = db.getCollection("users");
- }
- @Test
- public void testQuery() {
- //查询所有的数据库
- for (String name : mg.getDatabaseNames()) {
- System.out.println("dbName: " + name);
- }
- //查询所有的聚集集合
- for (String name : db.getCollectionNames()) {
- System.out.println("collectionName: " + name);
- }
- //查询所有的数据
- DBCursor cur = users.find();
- while (cur.hasNext()) {
- System.out.println(cur.next());
- }
- //其它
- System.out.println(cur.count());
- System.out.println(users.count());
- System.out.println(cur.getCursorId());
- System.out.println(JSON.serialize(cur));//JSON对象转换
- }
- @Test
- public void testQuery2(){
- //根据id查询
- List<DBObject> list=users.find(new BasicDBObject("_id", new ObjectId("5243871a0609f38c8a7a5ccd"))).toArray();
- System.out.println(list.get(0).get("name"));
- //根据age查询,从第一条开始取,取3条数据
- BasicDBObject user = new BasicDBObject();
- user.put("age", new BasicDBObject("$gte", 20));
- DBCursor cur=users.find(user).skip(0).limit(3);
- System.out.println(cur.count());
- while (cur.hasNext()) {
- System.out.println(cur.next());
- }
- //查询age!=25
- //users.find(new BasicDBObject("age", new BasicDBObject("$ne", 25))).toArray();
- //查询age in 25/26/27
- //users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.IN, new int[] { 25, 26, 27 }))).toArray();
- //查询age not in 25/26/27
- //users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.NIN, new int[] { 25, 26, 27 }))).toArray();
- //查询存在age的数据
- //users.find(new BasicDBObject("age", new BasicDBObject(QueryOperators.EXISTS, true))).toArray();
- //只查询age属性
- //users.find(null, new BasicDBObject("age", true)).toArray();
- //只查询一条数据,多条取第一条
- //users.findOne();
- //users.findOne(new BasicDBObject("age", 26));
- //users.findOne(new BasicDBObject("age", 26), new BasicDBObject("name", true));
- //查询age=25的数据并删除
- //users.findAndRemove(new BasicDBObject("age", 25));
- //查询age=26的数据,并且修改name的值为abc
- //users.findAndModify(new BasicDBObject("age", 26), new BasicDBObject("name", "abc"));
- }
- @Test
- public void testAdd() {
- DBObject user = new BasicDBObject();
- user.put("name", "fxd");
- user.put("age", 21);
- user.put("sex", "男");
- users.save(user);
- //查看是否添加成功
- DBCursor cur = users.find();
- while (cur.hasNext()) {
- System.out.println(cur.next());
- }
- }
- @Test
- public void testAdd2() {
- DBObject user1 = new BasicDBObject("name","张三");
- DBObject user2 = new BasicDBObject("age",20);
- users.insert(user1,user2);
- //查看是否添加成功
- DBCursor cur = users.find();
- while (cur.hasNext()) {
- System.out.println(cur.next());
- }
- }
- @Test
- public void testAdd3() {
- DBObject user1 = new BasicDBObject("name","张三");
- DBObject user2 = new BasicDBObject("age",20);
- List<DBObject> list = new ArrayList<DBObject>();
- list.add(user1);
- list.add(user2);
- users.insert(list);
- //查看是否添加成功
- DBCursor cur = users.find();
- while (cur.hasNext()) {
- System.out.println(cur.next());
- }
- }
- @Test
- public void testRemove(){
- users.remove(new BasicDBObject("_id", new ObjectId("524378680609ad5717421c6a")));
- //users.remove(new BasicDBObject("age", new BasicDBObject("$gte", 24)));
- }
- @Test
- public void update(){
- //=update users set age=17 where name='fxd';
- users.update(
- new BasicDBObject("name","fxd"),//new BasicDBObject().append("name","fxd"),
- new BasicDBObject("$set" ,new BasicDBObject("age",17)),
- false,//如果users中不存在age字段,是否更新,false表示不更新
- false//只修改第一条,true表示修改多条
- );
- }
- @Test
- public void update2(){
- //批量修改,也可以用users.update(),把第四个参数改为true即可
- //=update users set age=age+10 where name='fxd';
- users.updateMulti(
- new BasicDBObject().append("name","fxd"),
- new BasicDBObject("$inc",new BasicDBObject("age", 10))
- );
- }
- @After
- public void tearDown() {
- if (mg != null) {
- if (db != null) {
- // 结束Mongo数据库的事务请求
- try {
- db.requestDone();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- try {
- mg.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- mg = null;
- db = null;
- }
- }
- }
参考:
http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html
相关推荐
本教程将详细介绍如何使用Java与MongoDB进行交互,包括基本的增删改查(CRUD)操作。首先,我们需要引入MongoDB的Java驱动程序,这通常通过Maven或Gradle的依赖管理来实现。 1. **添加依赖** 在Maven的`pom.xml`...
在Java开发中,我们可以使用MongoDB的Java驱动程序来实现对MongoDB数据库的增、删、改、查(CRUD)操作。以下是对这些核心功能的详细说明。 1. **增加(Create)** 要在MongoDB中插入数据,我们需要使用`...
### Java操作MongoDB进行增删改查详解 #### 一、引言 在现代软件开发中,非关系型数据库如MongoDB因其灵活性和扩展性而备受青睐。Java作为一种广泛使用的编程语言,在操作MongoDB时提供了丰富的API支持。本文将详细...
通过学习和实践这些示例,你将能够熟练地在Java应用程序中与MongoDB进行交互,进行数据的增删改查操作。在实际项目中,你可能还需要关注错误处理、连接池管理、事务支持等方面,以确保应用程序的健壮性和性能。
在本项目中,我们将探讨如何使用MongoDB进行数据的增删改查操作,以及如何结合前端页面、IntelliJ IDEA开发环境、Thymeleaf模板引擎和MyBatis持久层框架来构建一个完整的应用程序。 首先,让我们深入了解MongoDB的...
在这个“MongoDb增删改查的网站范例”中,我们将探讨如何利用Spring Data项目和MongoDB适配器进行数据库操作。 Spring Data是一个强大的框架,它简化了与各种数据存储系统的交互,包括MongoDB。Spring Data MongoDB...
下面将详细介绍这三个组件以及它们在实现增删改查(CRUD)操作中的作用。 **Spring Boot** Spring Boot是由Pivotal团队提供的全新框架,旨在简化Spring应用的初始搭建以及开发过程。它集成了大量常用的第三方库配置...
结合这三个技术,我们可以实现对MongoDB数据库的高效操作,包括增(添加数据)、删(删除数据)、改(修改数据)和查(查询数据)。以下是对这些知识点的详细说明: 1. **MongoDB**: - MongoDB是一个分布式文档型...
增删改查(CRUD)是数据库操作的基本动作。在用户管理中,"增"即增加新用户,"删"是删除用户账户,"改"为修改用户信息,"查"是查询用户信息。在Java中,我们可以创建Service层来封装这些业务逻辑,然后通过DAO(数据...
本项目选择了"Maven+SpringBoot+JPA"这一技术栈,旨在提供一个简单的单表操作示例,帮助开发者快速理解如何在Spring Boot环境下使用Maven构建项目,并通过Spring Data JPA实现数据的增删改查功能。 首先,让我们...
对于增删改查(CRUD)操作,MongoDB提供了丰富的API。让我们逐一介绍这些操作: **插入数据(Create)** 在Java中,我们可以通过`MongoCollection.insertOne()`或`MongoCollection.insertMany()`方法来插入单条或多...
在Web开发中,“增删改查”(CRUD:Create, Read, Update, Delete)是基本的操作模式,广泛应用于各种数据库交互场景。这些操作构成了Web应用程序的核心功能,尤其是在构建数据驱动的网页应用时。以下是对“web增删...
这个“纯JAVA不用数据库的,用数组对数据增删改查”的项目就是为此目的设计的。它提供了一个基础的学生管理系统,适合初学者学习数据操作的基本概念。 首先,我们要了解数组在Java中的角色。数组是内存中连续存储...
首先,增删改查(CRUD,Create、Read、Update、Delete)是数据库操作的基础。在Web应用中,这些操作通常通过后台服务器处理,然后通过HTTP请求与前端交互。例如,创建(Create)可能涉及用户提交表单,服务器接收到...
在本示例中,我们将探讨如何结合MongoDB和Spring 3.1.1进行数据操作,即增、删、改、查。 首先,集成MongoDB到Spring项目中,我们需要添加相应的依赖。在Spring 3.1.1时代,这通常意味着引入`spring-data-mongodb`...
在本文中,我们将深入探讨如何使用Java操作MongoDB并结合Spring框架进行整合。MongoDB是一个流行的NoSQL数据库,它以JSON...通过这样的整合,我们可以高效地使用Java操作MongoDB数据库,实现增删改查等各种业务需求。
接着,我们需要创建一个Repository接口,继承自Spring Data MongoDB提供的`MongoRepository`接口,用于实现CRUD操作: ```java public interface EmployeeRepository extends MongoRepository, String> { Optional...
在本项目中,我们主要探讨如何使用Spring MVC框架与MongoDB数据库进行集成,实现数据的增删查改(CRUD)操作。MongoDB是一个流行的NoSQL数据库系统,它以文档型数据模型为主,适合处理大量非结构化或半结构化的数据...
本篇将详细介绍如何利用Java实现MongoDB数据库的增、删、改、查(CRUD)操作。 1. **连接MongoDB** 要使用Java连接MongoDB,首先需要引入MongoDB Java驱动程序的依赖。在Maven项目中,可以在pom.xml文件中添加以下...