MongoDB( http://www.mongodb.org )是目前业界十分流行的对象型NoSql数据库。

Dorado Mongo Addon是用于辅助和简化Dorado7应用读写MongoDB的增强包。Dorado Mongo基于SpringData的MongoDB子项目( http://www.springsource.org/spring-data/mongodb ),因此在使用时您需要一同下载SpringData的相关jar包。

在普通的使用场景下,您需要首先在系统中配置MongoDB的连接方式和SpringData中MongoTemplate,示范配置文件如下…

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:mongo="http://www.springframework.org/schema/data/mongo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-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 ">

    <mongo:mongo host="127.0.0.1" port="27017" />

    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg ref="mongo" />
        <constructor-arg name="databaseName" value="your-database-name" />
    </bean>
</beans>

接下来我们需要为某一种具体的Java实体模型创建一个DAO。假设我们现在要操作的Bean是Person,那么我们可以创建这样一个DAO…

@Component
public class PersonDao extends MongoDao<Person> {}

这个DAO将可以帮助我们自动的完成Person数据的读写,其使用的collectionName是系统为Person自动分配的。关于collectionName的具体含义请查阅MongoDB的相关文档。假如Person使用的不是默认collectionName(比如Person可能使用的多个collectionName),那么您需要为Person的每一个collectionName创建一个DAO,例如…

@Component
public class StudentDao extends MongoDao<Person> {
    public StudentDao() {
        setCollectionName("students");
    }
}

创建好DAO之后,我们就可以直接在定义DataProvider或DataResolver的类中使用它了…

@Component
public class PersonMaintain {
    @Resource
    private PersonDao personDao;

    @DataProvider
    public List<Person> getAll() {
        return personDao.findAll();
    }

    @DataResolver
    public void save(List<Person> persons) throws Exception {
        personDao.persistEntities(persons);
    }
}

非常简单吧!

Back to top