日期:2014-05-16  浏览次数:20702 次

Spring for mongodb的相关操作
相关文章来自:http://tech.it168.com/a2011/0627/1209/000001209757_all.shtml
文档API:http://static.springsource.org/spring-data/data-document/docs/current/api/
安装Spring for Mongodb
  Spring项目为方便对Mongodb的操作,建立了spring-data的子项目,地址在:
  http://www.springsource.org/spring-data/mongodb,目前版本是1.0.0M2阶段,已支持对Mongodb的一系列基本操作。我们先从http://www.springsource.org/spring-data/mongodb中下载相关的包:spring-data-document-1.0.0.M2.zip,下载解压后,将解压后的四个JAR文件放到工程路径的lib库中,本文中还将使用Spring 3.0.4的版本,请读者自行下载配置。
  Spring Mongodb的配置
  目前,可以有两种方式对Spring mongodb进行配置。第一种是使用Spring 3中的注解,另外一种是使用传统的XML配置。下面分别进行讲解:
  使用Spring 3中的注解
  首先在配置类中,要继承AbstractMongoConfiguration类,代码如下:
package com.mkyong.config;
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(),"yourdb","yourCollection");
    }
}

  这里,引入了MongoTemplate模版类,并且使用对连接数据库的地址,数据库名和collection进行了初始化。
  在调用Spring Mongodb配置时,只需要在需要使用的类中调用AnnotationConfigApplicationContext,传入刚才配置好的SpringMongoConfig类即可。如下代码所示:
 ApplicationContext
ctx = new AnnotationConfigApplicationContext(SpringMongoConfig.class);
MongoOperations 
mongoOperation = (MongoOperations)ctx.getBean("mongoTemplate");

  当获得了mongoOperation对象的实例后,即可进行对mongodb的相关操作。
  使用XML配置文件
  使用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="yourdb" />
        <constructor-arg name="defaultCollectionName" value="yourCollection" />
    </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");
  使用Spring Mongodb实现增删改查操作
  下面通过实例讲解如何使用Spring Mongodb实现增删改查操作,假设我们现在有一个实
  体类user如下:
package com.mkyong.user;
public class User {
private String id;
private String firstname;
private String lastname;
private int age;
//getter and setter methods 
}

  接下来,我们看具体的操作代码,如下,这里假设要将user类保存到名为userprofile的数据集中。
package com.mkyong.core;

import java.util.List;

import org.springframework.context.Applicati