SpringBoot整合MongoDB教程

  • Post author:
  • Post category:其他




1.整合过程



①添加MongoDB对应pom依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>



②配置文件,application.properties配置MongoDB数据库连接信息:

spring:

datasource:

url: jdbc:mysql://172.18.XXX.XXX:3236/sodb?useSSL=false

username: 1234

password: 1234

driver-class-name: com.mysql.cj.jdbc.Driver

data:

mongodb:

host: 172.18.XXX.XXX

port: 27017

database: message_db

connectTimeout: 120000

socketTimeout: 60000

maxWaitTime: 120000

socketKeepAlive: true



③实例托管/文档操作:

	在需要使用到MongoDB的地方注入MongoDBTemplate让Spring容器替我们管理实例,
而且在MongoDB里面所有的数据都被认为是文档,对象的属性对mgdb来说就是一个个
字段,所以最好模拟一个对象对文档进行操作;
/**
 * @author chenyang
 * @Title: EventMsgVo
 * @Description: TODO
 * @date 2021/2/26 15:52
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class MsgInfoVo {
​
    private String id;
​
    private String identifier;
    private String productKey;
    private String deviceName;
    private Long timestamp;
    private String version;
    private String method;
    private Object params;
}



④mgdb–curd(增删改查):

增:
Stud stud = new Stud(1,"小明",18)    //实例化一个实体类
MongodbTemplage.save(stud );
MongodbTemplage.insert(stud);
​
删:
MongodbTemplage.remove(Query query, Class<?> entityClass)
      
/**参数解释:
 *Query query:传入的查询条件,按此条件进行删除
 *Class<?> entityClass:所删除的数据的实体类
 *还可以带上参数
 *String collectionName : 这是集合的名称
 */
/**Query的实现:
 *Query query = new Query(Criteria.where("要查询的属性").is("属性值"));
 *如果条件多,可使用 and 和 andOperator()组合查询;
 */
new Query(Criteria.where(“要查询的属性”).is(“属性值”).and(“要查询的属性”).is(“属性值”))
new Query(Criteria.where(“要查询的属性”).is(“属性值”).andOperator(Criteria.where(“要查询的属性”).is(“属性值”)));
​
//注:一个Criteria中只能有一个andOperator,and可以多个,当查询并列条件时,比较建议使用and方法;
​
改:
Update update = new Update();
update.set("属性","属性值");
MongodbTemplage.update(Query var1, Update var2, Class<?> var3)
//updateFirst只修改查到的第一个。
MongodbTemplage.updateFirst(Query var1, Update var2, Class<?> var3)
​
查:    
// 查询所有
MongodbTemplage.find(Query var1, Class<T> var2, String var3)
// 根据字段查询数据
MongodbTemplage.find(Query var1, Class<T> var2, String var3)
Query query = new Query(Criteria.where("要查询的属性").is("属性值"));
​



版权声明:本文为qq_45296917原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。