在web项目中使用mongoDB(一)

来源:互联网 发布:空气加湿器 知乎 编辑:程序博客网 时间:2024/05/17 06:25

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