spring boot访问mogodb

1 mogodb安装及操作

首先去官网http://www.mongodb.org/downloads下载安装文件,然后点击安装,注意在安装的时候不要选择compass就可以了。安装后从cmd进入安装目录的bin目录,新建一个data文件夹,然后执行命令来启动mogodb:

bin>mongod --dbpath data

另起一个cmd,进入到bin目录下,执行命令来连接mongodb:

C:\Program Files\MongoDB\Server\4.0\bin>mongo.exe
MongoDB shell version v4.0.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.0.2

显示数据库:

> show dbs;
admin   0.000GB
config  0.000GB
local   0.000GB

使用数据库test:

> use test
switched to db test

use test是使用数据库test,如果不存在则会新建一个数据库。再次显示test创建了没有:

> show dbs;
admin   0.000GB
config  0.000GB
local   0.000GB

这里怎么没有显示test出来?这是因为test此时为空数据库,Mogodb是不现实空数据库的。感觉这点很坑爹。

给test创建一个用户name,密码passwd:

>  db.createUser({user:"lzj",pwd:"passwd",roles:[{role:"readWrite",db:"test"}]})
Successfully added user: {
        "user" : "name",
        "roles" : [
                {
                        "role" : "readWrite",
                        "db" : "test"
                }
        ]
}

现在test中并没有数据,下面将使用spring boot操作Mongodb来插入数据。

2 pom.xml中添加mangodb依赖

在spring boot工程的pom.xml中添加依赖:


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

3 在application.properties中添加配置

spring.data.mongodb.uri=mongodb://name:passwd@localhost:27017/test

4 创建数据实体UserEntity

public class UserEntity implements Serializable {
    private static final long serialVersionUID = -3258839839160856613L;

    public Long getId() {
        return id;
    }

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

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    private Long id;
    private String userName;
    private String passWord;

}

5 创建数据操作服务类

@Service
public class UserDaoImpl {
    @Autowired
    private MongoTemplate mongoTemplate;

    /**
     * 创建对象
     * @param user
     */
    public void saveUser(UserEntity user) {
        mongoTemplate.save(user);
    }

    /**
     * 根据用户名查询对象
     * @param userName
     * @return
     */
    public UserEntity findUserByUserName(String userName) {
        Query query=new Query(Criteria.where("userName").is(userName));
        UserEntity user =  mongoTemplate.findOne(query , UserEntity.class);
        return user;
    }

    /**
     * 更新对象
     * @param user
     */
    public void updateUser(UserEntity user) {
        Query query=new Query(Criteria.where("id").is(user.getId()));
        Update update= new Update().set("userName", user.getUserName()).set("passWord", user.getPassWord());
        //更新查询返回结果集的第一条
        mongoTemplate.updateFirst(query,update,UserEntity.class);
        //更新查询返回结果集的所有
        // mongoTemplate.updateMulti(query,update,UserEntity.class);
    }

    /**
     * 删除对象
     * @param id
     */
    public void deleteUserById(Long id) {
        Query query=new Query(Criteria.where("id").is(id));
        mongoTemplate.remove(query,UserEntity.class);
    }
}

6 测试类

package com.example.mongodb;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

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

	@Test
	public void contextLoads() {
	}

	@Autowired
	private UserDaoImpl userDao;

	@Test
	public void testSaveUser() throws Exception {
		UserEntity user=new UserEntity();
		user.setId(2l);
		user.setUserName("小明");
		user.setPassWord("fffooo123");
		userDao.saveUser(user);
	}

	@Test
	public void findUserByUserName(){
		UserEntity user= userDao.findUserByUserName("小明");
		System.out.println("user is "+user.getUserName());
	}

	@Test
	public void updateUser(){
		UserEntity user=new UserEntity();
		user.setId(2l);
		user.setUserName("天空");
		user.setPassWord("fffxxxx");
		userDao.updateUser(user);
	}

	@Test
	public void deleteUserById(){
		userDao.deleteUserById(1l);
	}
}

猜你喜欢

转载自blog.csdn.net/liuzhijun301/article/details/82527906