概述
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入门学习(三) 之 springboot整合mongodb所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复