准备工作
关于 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);
}
每天学习一点点,每天进步一点点。