1. 程式人生 > 實用技巧 >在 Spring Boot 中使用 MongoDB

在 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);
    }

每天學習一點點,每天進步一點點。