在 Spring Boot 中使用 MongoDB

准备工作

关于 MongoDB 的安装, 参考文章:在 centos7 中使用 docker 安装 MongoDB 并远程连接

添加依赖:

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

applica.properties 配置文件如下:

spring.data.mongodb.host=xxx.xxx.xxx.xxx
spring.data.mongodb.port=27017
# mongodb 的用户名密码不统一,不同的数据库有不同的认证方式
# 这里的用户名和密码,针对的是 admin 数据库
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=root
spring.data.mongodb.password=123456
# 操作的数据库的名字,任取
spring.data.mongodb.database=test

示例

新建 bean包,再建一个 Book类:

@Data
public class Book {
    private Integer id;
    private String name;
    private String author;
}

新建一个 dao包,再建一个 BookDao接口:

public interface BookDao extends MongoRepository<Book, Integer> {
}

如上,接口 BookDao继承 MongoRepository,操作方式和 在 Spring Boot 中使用 Spring Data JPA 十分类似。

运行项目,即可在数据库中自动建成对应的数据库和集合:

测试

在测试类中,进行增删改查的测试。

增加数据

@SpringBootTest
class MongodbApplicationTests {

    @Autowired
    BookDao bookDao;

    @Test
    void contextLoads() {
        Book book = new Book();
        book.setId(2);
        book.setName("红楼梦");
        book.setAuthor("曹雪芹");
        bookDao.insert(book);
    }
}

查询数据

    @Test
    public void test1(){
        List<Book> list = bookDao.findAll();
        System.out.println(list);
    }

自定义查询

在 BookDao 中,自定义一个方法,按书名查询数据:

public interface BookDao extends MongoRepository<Book, Integer> {
    /**
     * 定义一个按书名查询的方法
     * @param name
     * @return
     */
    List<Book> findBookByNameContaining(String name);
}

在测试方法中,调用这个方法:

    @Test
    public void test1(){

        List<Book> books = bookDao.findBookByNameContaining("红");
        System.out.println(books);
    }

每天学习一点点,每天进步一点点。

原文地址:https://www.cnblogs.com/youcoding/p/13895149.html