Spring MongoDB配置学习(转)

Spring-data-mongo是Spring的一个子项目,下载地址:http://www.springsource.org/spring-data/mongodb,这里用的是spring-data-mongo-1.1.0.M1.zip

Spring-mongo有两种方式进行配置(参考:http://www.cnblogs.com/chenying99/archive/2012/06/01/2529419.html)

第一种:Spring 3中的注解
配置类要继承AbstractMongoConfiguration类,重写(Override)mongo()和mongoTemplate()方法
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.document.mongodb.MongoTemplate;
import org.springframework.data.document.mongodb.config.AbstractMongoConfiguration;
import com.mongodb.Mongo;
/**
* Spring MongoDB configuration file
*/
@Configuration
public class SpringMongoConfig extends AbstractMongoConfiguration {
    @Override
    public @Bean Mongo mongo() throws Exception {
        return new Mongo("localhost");
    }
    @Override
    public @Bean MongoTemplate mongoTemplate() throws Exception {
        return new MongoTemplate(mongo(),"mydbname","myCollection");
    }
}
调用Spring Mongo配置,只需要在需要使用的类中调用AnnotationConfigApplicationContext,传入刚才配置好的SpringMongoConfig类即可。
ApplicationContext ac = new AnnotationConfigApplicationContext(SpringMongoConfig.class);
MongoOperations mo = (MongoOperations)ac.getBean("mongoTemplate");
至此便可对MongoDB进行操作了
第二种:传统的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"
    xsi:schemaLocation="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.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    <!-- Default bean name is 'mongo' -->
    <mongo:mongo host="localhost" port="27017" />
    <bean id="mongoTemplate" 
                 class="org.springframework.data.document.mongodb.MongoTemplate">
        <constructor-arg ref="mongo" />
        <constructor-arg name="databaseName" value="mydbname" />
        <constructor-arg name="defaultCollectionName" value="myCollection" />
    </bean>
    <!-- To translate any MongoExceptions thrown in @Repository annotated classes -->
    <context:annotation-config />
</beans>
注意这里引用相关的命名空间xmlns:mongo="http://www.springframework.org/schema/data/mongo"
,并且在名为mongoTemplate中注入相关的数据库地址,数据库名即可,使用方法如下:
ApplicationContext ctx = new GenericXmlApplicationContext("mongo-config.xml");

示例:

import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
import org.springframework.data.document.mongodb.MongoOperations;
import org.springframework.data.document.mongodb.query.Criteria;
import org.springframework.data.document.mongodb.query.Query;
import org.springframework.data.document.mongodb.query.Update;
import com.mkyong.config.SpringMongoConfig;
import com.mkyong.user.User;
public class App
{
public static void main( String[] args )
{
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class);
MongoOperations mongoOperation = (MongoOperations)ctx.getBean("mongoTemplate");
User user = new User("1001", "yong", "mook kim", 30);
//保存
mongoOperation.save("userprofile",user);
//查找
User savedUser = mongoOperation.findOne("userprofile",
new Query(Criteria.where("id").is("1001")),
User.class);
System.out.println("savedUser : " + savedUser);
//更新
mongoOperation.updateFirst("userprofile",
new Query(Criteria.where("firstname").is("yong")), 
Update.update("lastname", "new lastname"));
User updatedUser = mongoOperation.findOne("userprofile",
new Query(Criteria.where("id").is("1001")),
User.class);
System.out.println("updatedUser : " + updatedUser);
//删除
mongoOperation.remove("userprofile",
new Query(Criteria.where("id").is("1001")),
User.class);
//显示当前列表
List<User> listUser = 
mongoOperation.getCollection("userprofile", User.class);
System.out.println("Number of user = " + listUser.size());
}
}


参考:http://www.cnblogs.com/-clq/archive/2012/03/02/2376720.html

http://code.google.com/p/mongodb-monjadb-cn/downloads/list















  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: mongodb是一个非常流行的NoSQL数据库,并且已经成为很多开发者和企业的首选。与传统的关系型数据库相比,mongodb具有许多优势,例如可扩展性、高性能、灵活性等等。 如果你想学习mongodb,那么你可以从官方文档开始,它提供了非常详细的入门教程和完整的API文档,能够帮助你快速掌握mongodb的基础概念和使用方法。 除了官方文档外,还有许多优秀的mongodb学习资源可供选择。例如,网上有大量的教程、博客和视频教程,可以帮助你更深入地了解mongodb的使用和最佳实践。 另外,参加mongodb的社区活动也是很有帮助的。可以在官方网站上找到mongodb社区的论坛、开发者群、问题解答等资源,与其他开发者互动,分享经验和资源,能够更全面地学习mongodb。 总之,想要掌握mongodb,需要不断学习,不断实践。通过不断探索和运用,才能掌握mongodb的核心概念和应用技巧,更好地为项目和业务提供支持。 ### 回答2: MongoDB 是一款非常流行的 NoSQL 数据库,相比于传统的 SQL 数据库,它的特点是更加灵活和可扩展。学习 MongoDB 的手册需要掌握以下内容: 首先,需要掌握 MongoDB 的基础概念,包括集合,文档,索引等。MongoDB 是文档型数据库,不同于关系型数据库,它采用了更加自由的 schema-less 的模式,即文档并不需要保持相同的结构。掌握这些基本概念是了解 MongoDB 的基础,也是将 NoSQL 和 SQL 数据库进行比较更好的思想准备。 其次,需要了解 MongoDB 的安装和配置MongoDB 可以轻松运行在 Linux,Windows 和 Mac 等系统上,并且提供了一组强大的工具来管理数据库,如自带的 shell 和命令行接口。了解如何正确地安装并配置 MongoDB学习 MongoDB 的重要部分。 接下来,需要学习 MongoDB 的数据操作语言,MQL。 要能够理解如何使用 MQL 管理索引、文档、集合和数据库。MQL可以使您在MongoDB中找到您需要的数据信息,并进行相应的操作,例如添加,更新,删除等。 最后,学习 MongoDB 编程模型。MongoDB 提供了多种编程语言的驱动程序,例如 Python,Java,Node.js,PHP 等,以及一些流行的框架,如 Spring Data MongoDBMongoose 等。熟悉这些工具是学习 MongoDB 编程模式的关键,可以加速开发过程和提高应用程序的性能。 总之,MongoDB 是一种非常有用的数据库,它们为开发人员提供了易于使用的方式来管理和存储数据。通过学习 MongoDB 的手册,你将能够了解 MongoDB 基础知识并能够开始使用这种数据库来构建高效和可扩展的应用程序。 ### 回答3: MongoDB学习手册是一本介绍MongoDB数据库的书籍。MongoDB是一种文档数据库,它的特点是数据以文档的形式来存储,和传统的关系型数据库有所不同。阅读MongoDB学习手册可以帮助读者了解MongoDB的基础知识,掌握其使用方法,包括数据的查询、插入和更新等操作。此外,学习手册还介绍了一些高级功能,例如MongoDB的聚合框架和地理空间查询等功能,这些功能可以帮助开发人员构建更复杂的应用程序。MongoDB学习手册还讲述了如何使用MongoDB来构建分布式系统,以及如何处理复杂的数据类型和索引。学习手册还介绍了MongoDB的最佳实践和安全措施,以帮助读者避免一些与数据库相关的问题。总之,MongoDB学习手册是一本值得阅读的书籍,它可以帮助开发人员和数据科学家了解MongoDB的基础知识及其使用方法,并且能够为他们构建稳健的应用程序提供更多的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值