Spring MVC 集成MongoDB的两种方式

根据我上篇文章,先搭建启动好MongoDB服务器,然后按照下面的步骤来处理数据

Mongo可以用以下的两种方式来处理数据

1。 利用ArticleRepository来增删改查数据

查询数据
http://localhost:8080/springMongoDB/artivle/findAllByRepository
新增数据
http://localhost:8080/springMongoDB/artivle/saveArtivleByRepository?title=测试MongoTemplate&url=www.hao123.com&author=刘德华&visitCount=99

2。利用MongoTemplate来增删改查数据

查询数据
http://localhost:8080/springMongoDB/artivle/findAllByMongoTemplate
新增数据
http://localhost:8080/springMongoDB/artivle/saveArtivleByMongoTemplate?title=测试MongoTemplate&url=www.hao123.com&author=刘德华&visitCount=99

3. demo测试数据

package com.mongo.controller;

import com.mongo.model.Article;
import com.mongo.repository.ArticleRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.ArrayList;
import java.util.List;

/**
 * 测试mongodb的两种实现方式
 *
 * @author sww 2019/8/5 16:37
 */
@Controller
@RequestMapping("/artivle")
public class ArtivleController {

    @Autowired
    private ArticleRepository articleRepository;

    @Autowired
    private MongoTemplate mongoTemplate;

    @ResponseBody
    @RequestMapping("/saveArtivleByRepository")
    public String saveArtivleByRepository(Article article) {

        //增加一条记录
//        Article article = new Article();
//        article.setId("1");
//        article.setTitle("MongoTemplate的基本使用");
//        article.setAuthor("kcy");
//        article.setUrl("http://jianshu.com/");
//        article.setTags(Arrays.asList("java", "mongodb", "spring"));
//        article.setVisitCount(0L);
//        article.setAddTime(new Date());
        articleRepository.save(article);

        return "sava success";
    }

    @ResponseBody
    @RequestMapping("/findAllByRepository")
    public List<Article> findAllByRepository() {

        List<Article> articleList = new ArrayList<>();

        Iterable<Article> articles = articleRepository.findAll();
        articles.forEach(article -> {
            System.out.println(article.toString());
            articleList.add(article);
        });

        return articleList;
    }


    @ResponseBody
    @RequestMapping("/saveArtivleByMongoTemplate")
    public String saveArtivleByMongoTemplate(Article article) {
//        for (int i = 0; i < 2; i++) {  //增加一条记录
//            Article article = new Article();
//            article.setId("32");
//            article.setTitle("MongoTemplate的基本使用");
//            article.setAuthor("kcy");
//            article.setUrl("http://jianshu.com/");
//            article.setTags(Arrays.asList("c", "python", "spring"));
//            article.setVisitCount(0L);
//            article.setAddTime(new Date());
//            mongoTemplate.save(article);
//        }
        mongoTemplate.save(article);

        return "sava success";
    }

    @ResponseBody
    @RequestMapping("/findAllByMongoTemplate")
    public List<Article> findAllByMongoTemplate() {

        List<Article> articleList = new ArrayList<>();

        List<Article> articles = mongoTemplate.findAll(Article.class);
        articles.forEach(article -> {
            System.out.println(article.toString());
            articleList.add(article);
        });

        return articleList;
    }
}

applicationContext-mongo.xml文件源码配置 


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:util="http://www.springframework.org/schema/util"
       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/util http://www.springframework.org/schema/util/spring-util.xsd
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo.xsd">
    <context:property-placeholder
            ignore-unresolvable="true" location="classpath:/mongodb.properties"/>

    <mongo:mongo-client id="mongoClient" host="localhost" port="27017">
        <!-- credentials="${mongo.user}:${mongo.pwd}@${mongo.defaultDbName}"-->
    </mongo:mongo-client>

    <mongo:db-factory id="mongoDbFactory"
                      dbname="test"
                      mongo-ref="mongoClient"/>
    <!-- 默认Mongodb类型映射 -->
    <bean id="defaultMongoTypeMapper" class="org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper">
        <constructor-arg name="typeKey">
            <!-- 这里设置为空,可以把 spring data mongodb 多余保存的_class字段去掉 -->
            <null/>
        </constructor-arg>
    </bean>

    <!-- 自动扫描以下包的有Doucment注解的类 -->
    <mongo:repositories base-package="com.mongo"/>

    <mongo:mapping-converter id="mappingConverter" base-package="com.mongo.model"
                             type-mapper-ref="defaultMongoTypeMapper">
    </mongo:mapping-converter>

    <!-- Mongodb的模板 -->
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
        <constructor-arg name="mongoConverter" ref="mappingConverter"/>
    </bean>
</beans>

 

查询所有数据测试界面:

新增数据测试界面:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值