spring-data-mongodb提供了MongoTemplate与MongoRepository两种方式访问mongodb,MongoRepository操作简单,MongoTemplate操作灵活,我们在项目中可以灵活适用这两种方式操作mongodb,MongoRepository的缺点是不够灵活,MongoTemplate正好可以弥补不足。
新建一个springboot项目,引入以下依赖:
<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>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
在application.properties文件添加配置:
| spring.data.mongodb.uri=mongodb://ip:27017/test //27017是我的端口 |
我们在使用mysql的时候有表对应的实体,那么mongo也一样,需要建立自己使用的实体类,我新建一个User类作为实体类:

然后通过mongoTemplate来完成crud
注意:我已经在阿里云上开放了我的27017端口(第一篇文章有讲到我实在阿里云docker安装的mongodb)

直接在测试类里面进行写代码了:
1、插入数据:(插入成功会返回插入的数据)

这个时候我在云服务器上面查询一下发现也是有值的:

2、查询所有数据:(目前我的只有刚刚插入的那一条数据)

3、根据id来查询

4、条件查询
注意导包:
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query;

4、模糊查询(upsert方法)
可以看到数据已经修改成功:

5、删除操作:

========================================================
MongoRepository方式操作CRUD:
首先创建一个interface实现MongoRepository接口

然后将新建的 UserRepository 注入到测试类中

添加方法:

查询所有:

根据id查询:

条件查询:

模糊查询:

分页查询:

修改:

删除:
演示的demo已上传csdn,需要的自行下载:mongodbdemo案例代码-Java文档类资源-CSDN下载
注意:上面不管是通过mongoTemplate还是mongoRepository来进行crud其实都是用的内部封装好的方法,除了他们提供好的方法我们也可以进行自定义方法,比如我用mongoRepository来查询name="xxx"也可以这样定义方法:
hospitalRepository.getInfoByName("xxxxx");
然后在xxxxRepository接口中定义一下方法,MongoRepository会自动帮我们实现接口。
注意:上面方法命名是有规则的:

1、不是随便声明的,而需要符合一定的规范
2、 查询方法以find | read | get开头
3、 涉及条件查询时,条件的属性用条件关键字连接
4、 要注意的是:条件属性首字母需要大写
5、 支持属性的级联查询,但若当前类有符合条件的属性则优先使用,而不使用级联属性,若需要使用级联属性,则属性之间使用_强制进行连接
最后
以上就是孤独鼠标最近收集整理的关于mongodb入门学习(三) 之 springboot整合mongodb的全部内容,更多相关mongodb入门学习(三)内容请搜索靠谱客的其他文章。
发表评论 取消回复