前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot之mongoTemplate的使用

SpringBoot之mongoTemplate的使用

作者头像
克虏伯
发布2019-04-15 10:15:07
5.5K0
发布2019-04-15 10:15:07
举报

    springboot的版本1.5.17.RELEASE。

1、mongo的IP和端口

    在resources下的application.properties中加入如下内容

代码语言:javascript
复制
spring.data.mongodb.host=localhost
spring.data.mongodb.database=test
spring.data.mongodb.port=27017

2、引入springboot mongo依赖

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

3、使用mongoTemplate

    经过步骤2和步骤1之后,可以直接注入mongoTemplate了,不需要我们再显示的定义bean了。

    直接上代码了,如下所示,包含了保存、查询、分页查询、有条件的分页查询。

代码语言:javascript
复制
import java.util.Date;
import java.util.List;

import lombok.extern.slf4j.Slf4j;

import org.junit.Test;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Query;

import com.mjduan.springbootmongodb.domain.User;

/**
 * @author dmj1161859184@126.com 2018-11-27 21:19
 * @version 1.0
 * @since 1.0
 */
@Slf4j
public class MongoTemplateTest extends SpringbootMongodbApplicationTests {
    /**
     * properties中设置了属性后,就会自动配置MontoTemplate
     */
    @Autowired
    private MongoTemplate mongoTemplate;

    @Test
    public void testFindAll() {
        List<User> users = mongoTemplate.findAll(User.class);
        System.out.println(users);
    }

    @Test
    public void testAddUser() {
        User user = new User();
        user.setAge(9);
        user.setAddress("address");
        user.setUsername("crupper");
        user.setDate(new Date());
        mongoTemplate.save(user);
    }

    @Test
    public void testPage() {
        Pageable pageable = new PageRequest(1, 3);
        Query query = new Query();
        query.with(pageable);
        List<User> users = mongoTemplate.find(query, User.class);
        log.info(users.toString());
    }

    @Test
    public void testPageSort() {
        Pageable pageable = new PageRequest(1, 3);
        Query query = new Query();
        query.with(pageable);
        query.with(new Sort(Sort.Direction.ASC, "age"));
        List<User> users = mongoTemplate.find(query, User.class);
        log.info(users.toString());
    }

    @Test
    public void testPageSortMulti() {
        Pageable pageable = new PageRequest(0, 6);
        Query query = new Query();
        query.with(pageable);
        query.with(new Sort(Sort.Direction.ASC, "age").and(new Sort(Sort.Direction.DESC, "date")));
        List<User> users = mongoTemplate.find(query, User.class);
        log.info(users.toString());
    }

    @Test
    public void testCount() {
        Query query = new Query();
        query.with(new Sort(Sort.Direction.ASC, "age").and(new Sort(Sort.Direction.DESC, "date")));
        long count = mongoTemplate.count(query, User.class);
        log.info(count + "");
    }
}

    SpringbootMongodbApplicationTests如下所示:

代码语言:javascript
复制
import org.junit.Test;
import org.junit.runner.RunWith;

import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootMongodbApplicationTests {

    @Test
    public void contextLoads() {
    }
}

Reference

  1. https://www.cnblogs.com/jycboy/archive/2018/04/28/8969035.html

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、mongo的IP和端口
  • 2、引入springboot mongo依赖
  • 3、使用mongoTemplate
  • Reference
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档