在 Spring Boot 中使用 MongoDB
阿新 • • 發佈:2020-10-29
準備工作
關於 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);
}
每天學習一點點,每天進步一點點。