您的位置:首页 > 数据库 > Mongodb

springboot测试环境中为什么会将mongodb的数据自动存储到test表中

2017-04-17 16:17 771 查看
今天学习进入到mongodb使用springdata支持进行简单的增删改查部分,在使用springboot进行测试的时候,有一个很神奇的问题,在程序中存入数据,但在mongodb中我指定的数据库中却找不到数据,在mongodb指定的数据库中存入数据,在程序中也查不到。但很神奇的是,在程序中能够正常存取,还不会报错。感觉简直郁闷到吐血的程度。代码如下:

springboot中的配置文件:

spring.data.mongodb.host=127.0.0.1
spring.data.mongo.repositories.enabled=true
spring.data.mongodb.port=27017
spring.data.mongodb.uri=mongodb\://127.0.0.1\:27017/permission #指定的数据库:permission


创建一个简单的实体:

package com.permission.bean.companyInfo;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

/**
* Created by niuniu on 2017/4/17.
* 公司表
*/
@Document//mongodb数据模型的标识
public class Company {

@Id
private String id; //公司ID

private String name; //名称

private String user; //创建人

private String createTime; //创建时间

private String address; //公司地址

public Company() {
}

public Company(String id, String name, String user, String createTime, String address) {
this.id = id;
this.name = name;
this.user = user;
this.createTime = createTime;
this.address = address;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getUser() {
return user;
}

public void setUser(String user) {
this.user = user;
}

public String getCreateTime() {
return createTime;
}

public void setCreateTime(String createTime) {
this.createTime = createTime;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

@Override
public String toStrin
b369
g() {
return "Company{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", user='" + user + '\'' +
", createTime='" + createTime + '\'' +
", address='" + address + '\'' +
'}';
}
}


创建一个springdata的处理接口:

package com.permission.repository;

import com.permission.bean.companyInfo.Company;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

/**
* Created by niuniu on 2017/4/17.
*/
@Repository
public interface CompanyRepository extends MongoRepository<Company,String>{
}


创建一个service:

package com.permission.service;

import com.permission.bean.companyInfo.Company;
import com.permission.repository.CompanyRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
* Created by niuniu on 2017/4/17.
*/
@Service
public class CompanyService {

@Autowired
private CompanyRepository companyRepository;

public Company createCompany(Company company){
return companyRepository.save(company);
}

public Company findCompany(String id){
Company c = companyRepository.findOne(id);
return c;
}

public Company updateCompany(Company company){
Company c = companyRepository.findOne(company.getId());
c.setUser(company.getUser());
return companyRepository.save(c);
}
}


根据这个service编写简单的测试类:

package com.permission.service;

import com.permission.MypermissionApplication;
import com.permission.bean.companyInfo.Company;
import org.junit.Test;
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 static org.junit.Assert.*;

/**
* Created by niuniu on 2017/4/17.
*/

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = MypermissionApplication.class)
public class CompanyServiceTest {

@Autowired
private CompanyService companyService;

@Test
public void createCompany(){
Company company = new Company("162","niuiufei","整天准备干啥","1323","gansha000");
Company company1 = companyService.createCompany(company);
System.out.println(company1.toString());
}
}


执行,神奇的事情就发生了。



然后到数据库中查询:


查了很多资料,纠结了很久,数据竟然神奇的消失了。但我找呀找,终于在test数据库中找到了我在程序中加入的数据。


所以针对这个springboot测试中数据会自己添加到test库中的原理是什么就不太清楚了?会进一步研究,但希望对这个有研究的能够给出答案,在此多谢各位了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐