spring boot对mongodb使用

1.pom.xml

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

2.在application.properties中添加配置

spring.data.mongodb.uri=mongodb://name:pass@localhost:27017/test
多个IP集群可以采用以下配置:

spring.data.mongodb.uri=mongodb://user:pwd@ip1:port1,ip2:port2/database

3.创建实体

package com.example.demo.entry;

import java.io.Serializable;

public class MongoTest implements Serializable{
    private String name;
    private int age;

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

4.dao层

package com.example.demo.dao;

import com.example.demo.entry.MongoTest;

public interface MongoTestInterface {
    public void saveUser(MongoTest user);
    public MongoTest findUserByUserName(String userName);
    public void updateUser(MongoTest user);
    public void deleteUserById(int age);
}

5.实现dao

package com.example.demo.dao;

import com.example.demo.entry.MongoTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;

@Component
public class MongoTestMapper implements  MongoTestInterface{
    @Autowired
    private MongoTemplate mongoTemplate;


    /**
     * 创建对象
     * @param user
     */

    public void saveUser(MongoTest user) {
        mongoTemplate.save(user);
    }

    /**
     * 根据用户名查询对象
     * @param userName
     * @return
     */

    public MongoTest findUserByUserName(String userName) {
        Query query=new Query(Criteria.where("name").is(userName));
        MongoTest user =  mongoTemplate.findOne(query , MongoTest.class);
        return user;
    }

    /**
     * 更新对象
     * @param user
     */

    public void updateUser(MongoTest user) {
        Query query=new Query(Criteria.where("age").is(user.getAge()));
        Update update= new Update().set("name", user.getName()).set("age", user.getAge());
        //更新查询返回结果集的第一条
        mongoTemplate.updateFirst(query,update,MongoTest.class);
        //更新查询返回结果集的所有
        // mongoTemplate.updateMulti(query,update,UserEntity.class);
    }


    /**
     * 删除对象
     * @param age
     */

    public void deleteUserById(int age) {
        Query query=new Query(Criteria.where("age").is(age));
        mongoTemplate.remove(query,MongoTest.class);
    }
}

6.测试

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Autowired
    private MongoTestInterface mongoTestMapper;

    @Test
    public void testSaveUser() throws Exception {
        MongoTest user=new MongoTest();
        user.setAge(21);
        user.setName("小明");
        mongoTestMapper.saveUser(user);
    }

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

    @Test
    public void updateUser(){
        MongoTest user=new MongoTest();
        user.setAge(21);
        user.setName("天空");
        mongoTestMapper.updateUser(user);
    }

    @Test
    public void deleteUserById(){
        mongoTestMapper.deleteUserById(21);
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_38336658/article/details/79851179