mongoDB使用demo

1.简介

           MongoDB 是一个基于分布式文件存储的数据库。

           MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。    

           MongoDB 是一个介于关系型数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似jsonbson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

2.特点

           它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

          *面向集合存储,易存储对象类型的数据。

          *模式自由。

          *支持动态查询

          *支持完全索引,包含内部对象。

          *支持查询。

          *支持复制和故障恢复。

          *使用高效的二进制数据存储,包括大型对象(如视频等)。

          *自动处理碎片,以支持云计算层次的扩展性。

          *支持RUBYPYTHONJAVAC++PHPC#等多种语言。

          *文件存储格式为BSON(一种JSON的扩展)。

          *可通过网络访问。

3.maven依赖

 <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb</artifactId>
        </dependency>

4. .properties文件

#mongodb
mongo.host=127.0.0.1
mongo.name=test
mongo.port=27017

5.config文件(工具类)

package com.jd.consumer.config;


import com.mongodb.Mongo;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;

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

/**
 * Created by Administrator on 2018/8/21.
 */
@Configuration
@EnableMongoRepositories(basePackages={"com.jd.consumer.service"})//MongoRepository的扫描包
@PropertySource("classpath:application.properties")//注入配置文件属性
public class MongoConfig extends AbstractMongoConfiguration {

    @Autowired
    private Environment env;

    @Override
    protected String getDatabaseName() {
        return env.getRequiredProperty("mongo.name");
    }

    @Bean
    public Mongo mongo() throws Exception {
        ServerAddress serverAddress=new ServerAddress(env.getRequiredProperty("mongo.host"));
        List<MongoCredential> credentials=new ArrayList<>();
        return new MongoClient(serverAddress, credentials);
    }

    @Override
    public MongoClient mongoClient() {
        ServerAddress serverAddress=new ServerAddress(env.getRequiredProperty("mongo.host"));
        List<MongoCredential> credentials=new ArrayList<>();
        return new MongoClient(serverAddress, credentials);
    }
}

5.Repository类

import com.jd.api.model.RequestLogMQMsgModel;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

/**
 * Created by Administrator on 2018/8/21.
 */
@Repository
public interface EmailRepository extends MongoRepository<RequestLogMQMsgModel, String> {

}

6.测试类

import com.jd.api.model.RequestLogMQMsgModel;
import com.jd.consumer.config.MongoConfig;
import com.jd.consumer.service.EmailRepository;
import org.junit.Before;
import org.junit.FixMethodOrder;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * Created by Administrator on 2018/8/21.
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={MongoConfig.class})
@FixMethodOrder
public class Test {
    @Autowired
    EmailRepository repository;

    @Before
    public void setup() {
        Set<String> roles=new HashSet<>();
        String str[]={"1","2","3","4"};
        roles.add("manage");
        RequestLogMQMsgModel requestLogMQMsgModel=new RequestLogMQMsgModel();
        requestLogMQMsgModel.setCostTime(1);
        requestLogMQMsgModel.setMethodName("txf");
        requestLogMQMsgModel.setParamNames(str);
        requestLogMQMsgModel.setRemoteAddr("[email protected]");
        requestLogMQMsgModel.setParamTypes(str);
        requestLogMQMsgModel.setParamValues(str);
        requestLogMQMsgModel.setRequestMethod("1");
        requestLogMQMsgModel.setRequestURI("1111");
        requestLogMQMsgModel.setUserEmail("[email protected]");
        repository.save(requestLogMQMsgModel);
    }
    @org.junit.Test
    public void findAll() {
        List<RequestLogMQMsgModel> users=repository.findAll();
     for(RequestLogMQMsgModel user:users) {
            System.out.println(user.getRemoteAddr());
      }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42034166/article/details/83855683