在web项目中使用mongoDB(一)

MongoDB,作为优秀的非关系型数据库,更适合于存储文档等非结构型数据。彼此独立的文档更适合于使用mongoDB存储。而关系型数据,则需要将这些数据分散到各个表中存储,非常麻烦。

非常幸运的是,spring下的子项目 spring-data已经集成了mongoDB的相关配置实现,只需要花上几分钟,我们可以很方便的在web项目中使用这种数据库了。

步骤:

1.在你的maven中添加spring-data-mongoDB依赖,推荐常用版本1.10.5或1.10.6,对应spring版本4.3.10

2.在你的机器上安装mongoDB,网上很多教程,这里不再累述

3.配置启用mongoDB,首先,我们需要知道有三种方式可以使用mongoDB,

(1)通过注解实现 对象-文档 映射(这样可能会不太好处理对象间的关系)

(2)使用mongoTemplate实现基于模板的数据库访问

(3)自动化的运行时Repository生成功能(相当于前者的自动版本)


因为之前在项目内的关系型数据库,使用了spring-data-jpa的Repository自动生成方法来访问数据库,所以这里也会采用第三种方法。


首先,需要新建一个mongoDB的配置类(或xml文件)

import com.mongodb.Mongo;
import org.fast.web.dao.DaoScanTag;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.core.MongoClientFactoryBean;
import org.springframework.data.mongodb.core.MongoFactoryBean;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;

/**
 * Created by Administrator on 2017/10/10.
 */
@Configuration
@EnableMongoRepositories(basePackageClasses = DaoScanTag.class)
public class MongoConfig {

    /**
     * 设置mongoDB的访问地址,并返回一个MongoClient
     * 之所以使用factorybean的方式生成MongoClient是因为,可以将mongoDB产生的异常由factorybean自动转换,就不再需要手动处理了
     *
     * @return
     */
    @Bean
    public MongoClientFactoryBean mongo() {
        MongoClientFactoryBean mongo = new MongoClientFactoryBean();
        mongo.setHost("localhost");
        return mongo;
    }

    /**
     * 此处需要设置数据库名
     * 虽然我们使用自动化Repository,但是其本质依然会调用template,所以在这里需要声明一个mongoTemplate
     * @param mongo
     * @return
     */
    @Bean
    public MongoOperations mongoTemplate(Mongo mongo) {
        return new MongoTemplate(mongo, "FastDB");
    }
}

asd

asd

你可能感兴趣的:(在web项目中使用mongoDB(一))