`
huangyongxing310
  • 浏览: 490733 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

MongoDB应用例子

阅读更多

MongoDB应用例子


JDBC应用例子:
<dependency>
	<groupId>org.mongodb</groupId>
	<artifactId>mongodb-driver</artifactId>
	<version>3.2.2</version>
</dependency>


import java.util.ArrayList;
import java.util.List;

import org.bson.Document;

import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;

public class MongoDBJDBC {
	public static void main(String args[]) {
		try {
			// 连接到MongoDB服务 如果是远程连接可以替换“localhost”为服务器所在IP地址
			// ServerAddress()两个参数分别为 服务器地址 和 端口
			ServerAddress serverAddress = new ServerAddress("localhost", 27017);
			List<ServerAddress> addrs = new ArrayList<ServerAddress>();
			addrs.add(serverAddress);

			// MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
			MongoCredential credential = MongoCredential.createScramSha1Credential("admin", "admin",
					"admin".toCharArray());
			List<MongoCredential> credentials = new ArrayList<MongoCredential>();
			credentials.add(credential);

			// 通过连接认证获取MongoDB连接
			MongoClient mongoClient = new MongoClient(addrs, credentials);

			// 连接到数据库
			MongoDatabase mongoDatabase = mongoClient.getDatabase("testDB"); // 得到要操作的数据库

			MongoCollection<Document> collection = mongoDatabase.getCollection("test");// 得到要操作的集合
			if (collection == null) {
				mongoDatabase.createCollection("test");// 集合创建
				System.out.println("集合创建成功");
				System.out.println("Connect to database successfully");
			}

			collection = mongoDatabase.getCollection("test");// 得到要操作的集合
			System.out.println("集合 test 选择成功");
			// 插入文档
			/**
			 * 1. 创建文档 org.bson.Document 参数为key-value的格式 2. 创建文档集合List
			 * <Document> 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List
			 * <Document>) 插入单个文档可以用 mongoCollection.insertOne(Document)
			 */
			Document document = new Document("title", "MongoDB").append("description", "database").append("likes", 100)
					.append("by", "Fly"); // 新建文档集
			List<Document> documents = new ArrayList<Document>();
			documents.add(document);
			collection.insertMany(documents);// 向集合插入文档集

			System.out.println("文档插入成功");

			// 检索所有文档
			/**
			 * 1. 获取迭代器FindIterable<Document> 2. 获取游标MongoCursor<Document> 3.
			 * 通过游标遍历检索出的文档集合
			 */
			FindIterable<Document> findIterable = collection.find(); // 查找所有文档集合
			MongoCursor<Document> mongoCursor = findIterable.iterator();
			while (mongoCursor.hasNext()) {
				System.out.println(mongoCursor.next());
			}

			mongoClient.close(); // 关闭连接
		} catch (Exception e) {
			System.err.println(e.getClass().getName() + ": " + e.getMessage());
		}
	}
}


参考原文(JDBC应用):http://www.runoob.com/mongodb/mongodb-java.html


spring data mongodb(MongoTemplate)

<dependency>
	<groupId>org.springframework.data</groupId>
	<artifactId>spring-data-mongodb</artifactId>
	<version>1.9.3.RELEASE</version>
</dependency>


applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mongo="http://www.springframework.org/schema/data/mongo"
        xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
            http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd">

 <context:annotation-config />
	<!-- <task:annotation-driven /> -->
	<context:component-scan base-package="com" />

    <mongo:mongo host="localhost" port="27017" >
            <!-- 可选项如果不配置则为值为默认 -->
          <mongo:options
              connections-per-host="8"
              threads-allowed-to-block-for-connection-multiplier="4"
              connect-timeout="1000"
              max-wait-time="1500"
              auto-connect-retry="true"
              socket-keep-alive="true"
              socket-timeout="1500"
              slave-ok="true"
              write-number="1"
              write-timeout="0"
              write-fsync="true"
                  />
    </mongo:mongo>

    <mongo:db-factory id="anotherMongoDbFactory"
    host="localhost"
    port="27017"
    dbname="admin"
    username="admin"
    password="admin" mongo-ref="mongo"/>

    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg name="mongoDbFactory" ref="anotherMongoDbFactory" />
       <!--  <constructor-arg ref="mongo" />
        <constructor-arg name="databaseName" value="test" />链接数据库的名字 -->
    </bean>
     <bean id="natureRepository"
        class="com.NatureRepositoryImpl">
    </bean>
</beans>



package com;

public class Address {
	private String addr;
private String pro;

	public String getAddr() {
		return addr;
	}

	public void setAddr(String addr) {
		this.addr = addr;
	}

	public String getPro() {
		return pro;
	}

	public void setPro(String pro) {
		this.pro = pro;
	}
}



package com;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Document
public class Person {
	@Id
	private String id;
	private String name;
	private int age;

	private Address address;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Address getAddress() {
		return address;
	}

	public void setAddress(Address address) {
		this.address = address;
	}

	@Override
	public String toString() {
		return "Person [id=" + id + ", name=" + name + ", age=" + age + ", address=" + address + "]";
	}

}



package com;

import java.util.List;

import com.mongodb.WriteResult;

public interface Repository<T> {

	public List<T> getAllObjects();

	public void saveObject(T object);

	public T getObject(String id);

	public WriteResult updateObject(String id, String name);

	public void deleteObject(String id);

	public void createCollection();

	public void dropCollection();
}


package com;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;

import com.mongodb.WriteResult;

public class NatureRepositoryImpl implements Repository<Person> {
	@Resource
	MongoTemplate mongoTemplate;

	public List<Person> getAllObjects() {
		return mongoTemplate.findAll(Person.class);
	}

	public void saveObject(Person tree) {
		mongoTemplate.insert(tree);
	}

	public Person getObject(String id) {
		// return mongoTemplate.find(new Query(Criteria.where("id").is(id)),
		// Person.class).get(0);
		return mongoTemplate.findById(id, Person.class);
	}

	public WriteResult updateObject(String id, String name) {
		return mongoTemplate.updateFirst(new Query(Criteria.where("id").is(id)), Update.update("name", name),
				Person.class);
	}

	public void deleteObject(String id) {
		mongoTemplate.remove(new Query(Criteria.where("id").is(id)), Person.class);
	}

	public void createCollection() {
		if (!mongoTemplate.collectionExists(Person.class)) {
			mongoTemplate.createCollection(Person.class);
		}
	}

	public void dropCollection() {
		if (mongoTemplate.collectionExists(Person.class)) {
			mongoTemplate.dropCollection(Person.class);
		}
	}
}



package com;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MongoTest {
	public static void main(String[] args) throws InterruptedException {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/applicationContext.xml");

		Repository<Person> repository = applicationContext.getBean(NatureRepositoryImpl.class);
		System.out.println(repository);

		repository.dropCollection();
		repository.createCollection();
		Person person = new Person();
		Address address = new Address();

		address.setAddr("合肥");
		address.setPro("安徽");
		person.setAddress(address);
		person.setAge(20);
		person.setName("senssic");
		person.setId("1");
		repository.saveObject(person);

		System.out.println("1. " + repository.getAllObjects().toString());
		person.setId("101");
		repository.saveObject(person);
		System.out.println("2. " + repository.getAllObjects().toString());

		person = repository.getObject("1");
		System.out.println(person.toString());

		System.out.println("合肥");
		repository.updateObject("1", "sen");
		System.out.println("3. " + repository.getAllObjects().toString());
		repository.deleteObject("1");
		System.out.println("4. " + repository.getAllObjects().toString());
	}
}


参考原文(配置参数):http://blog.csdn.net/freebird_lb/article/details/8229567
参考原文(配置参数):http://www.cnblogs.com/basecn/p/springmongo_intergration_cfg.html
参考原文:http://www.xuebuyuan.com/2207064.html
参考原文(Query(查询语句)):http://www.07net01.com/2015/08/889188.html
参考原文:http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/
参考原文:http://blog.csdn.net/zhongweijian/article/details/7625286
分享到:
评论

相关推荐

    MongoDB应用设计模式 高清中文版

    ### MongoDB应用设计模式知识点解析 #### 一、MongoDB简介 MongoDB是一种开源的文档数据库,也是NoSQL数据库的一种。它使用JSON格式的文档作为数据存储单元,支持动态查询、索引、复制等功能,适用于大数据量的...

    mongodb的小例子

    在"mongodb的小例子"中,我们可以预期这个压缩包包含了一些简单的示例代码,帮助初学者快速入门MongoDB。这些代码可能涵盖了以下关键知识点: 1. **安装与启动**:首先,你需要在本地或服务器上安装MongoDB。安装...

    mongodb例子

    MongoDB是一个基于分布式文件存储的开源数据库系统,广泛应用于现代应用程序开发中,特别是在处理大量非结构化或半结构化数据时。在这个“mongodb例子”中,我们很可能会找到一个简单的MongoDB数据库操作示例,这...

    MongoDB 应用场景与最佳实践.docx

    能提供几个 MongoDB 的案例,国外的例子太多,在 MongoDB 的官网上就有,无论是金融、传统等行业,我这里说一下国内的案例。 MongoDB 相对 HBase、MySQL 来说,有哪些优势? MongoDB 的优势在于轻量化部署非常简单...

    spring mongodb很好的例子

    在IT领域,Spring框架是Java开发中的一...通过分析和学习`HelloSpringWithMongoDB-master`这个示例项目,开发者可以更好地理解如何在实际应用中结合Spring MVC和Spring Data MongoDB,实现与MongoDB数据库的高效交互。

    spring-springMVC-mongodb整合例子

    这个例子中的"spring-springMVC-mongodb整合"是一个很好的学习和实践项目,可以帮助开发者深入理解这些技术的结合使用。通过这样的整合,开发者能够构建出更加灵活、适应现代互联网需求的应用程序。

    spring mvc 集成mongoDB项目 例子

    在本项目中,我们将探讨如何将Spring MVC框架与MongoDB数据库进行集成,创建一个实际的应用实例。MongoDB是一个流行的开源、非关系型数据库系统,以其灵活性、可扩展性和高性能著称。而Spring MVC是Java开发Web应用...

    spring-boot操作mongodb例子

    在 "spring-boot-mongodb" 这个示例中,我们将深入探讨如何在 Spring Boot 应用程序中集成和操作 MongoDB 数据库。以下是一些关键知识点: 1. **添加依赖**: 要使用 MongoDB,首先要在 `pom.xml` 或 `build....

    MongoDB之Java使用例子

    在这个“MongoDB之Java使用例子”中,我们将深入探讨如何在Java环境中操作MongoDB数据库,包括增、删、改、查(CRUD)操作以及图像数据的存储和检索。 首先,Java与MongoDB的交互主要通过MongoDB的Java驱动程序实现...

    spark 连接 mongodb 使用例子

    接下来,我们创建一个Spark配置对象,设置Master节点和应用名称。同时,为了连接MongoDB,我们需要配置MongoDB的连接信息,包括地址、端口、数据库名和集合名: ```java SparkConf conf = new SparkConf()....

    Spring-Mongodb例子

    在"Spring-Mongodb例子"这个压缩包中,可能包含了示例代码,演示了如何在Spring应用中设置MongoDB连接、定义数据模型、创建Repository接口以及执行基本的查询和保存操作。这个例子对于初学者来说,是一个很好的起点...

    C# 连接mongodb例子

    MongoDB是一种流行的开源、分布式文档数据库,常用于构建高性能、可扩展的应用程序。在C#中,我们可以使用MongoDB的官方驱动程序MongoDB.Driver来连接和操作MongoDB数据库。本教程将详细介绍如何使用C#连接到MongoDB...

    mongoDB Demo

    自己写的一个MongoDB小例子用于JAVA对象和集合之间的互相转换

    MongoDB+MVC上传例子

    这个例子展示了如何利用MongoDB的GridFS功能和MVC模式来处理Web应用程序中的文件上传,提供了一种高效、灵活的解决方案。在实际开发中,你可能还需要考虑其他因素,如安全性、性能优化以及用户体验等。

    MongoDB with F#

    2. **F# 语言特性及其在 MongoDB 应用中的优势** 3. **使用 C# 驱动器操作 MongoDB 的方法** 4. **利用 F# 的类型系统改进 MongoDB 中字符串泛滥的问题** #### MongoDB 基本概念 MongoDB 是一个开源的 NoSQL 数据库...

    Node应用程序构建—使用MongoDB和Backbone+源码

    Node.js是一套用来编写高性能网络服务器的JavaScript工具包。...《Node应用程序构建——使用MongoDB和Backbone》可以作为学习和掌握Node.js、Backbone.js和MongoDB的实践教程,也适合对这几种技术感兴趣的读者阅读

    mongodb java 驱动支持jar 及其源码

    本篇文章将详细介绍“mongodb java驱动支持jar”及其源码,帮助开发者更好地理解和使用这些资源。 首先,`mongo-java-driver-3.8.0.jar`是MongoDB Java驱动的主要库,它包含了与MongoDB服务器通信所需的所有类和...

    Mongodb数据库JAVA操作例子

    在Java应用程序中,我们通常使用Java驱动程序来与MongoDB进行交互。本篇将详细介绍如何利用Java实现MongoDB数据库的增、删、改、查(CRUD)操作。 1. **连接MongoDB** 要使用Java连接MongoDB,首先需要引入MongoDB...

    MongoDB in action 源码

    10. 应用集成:源码可能包含了与多种编程语言(如Python、Java、Node.js等)集成的例子,展示了如何在实际项目中使用MongoDB驱动程序。 通过阅读和实践这些源码,读者能够加深对MongoDB工作原理的理解,掌握在实际...

Global site tag (gtag.js) - Google Analytics