码迷,mamicode.com
首页 > 编程语言 > 详细

springboot集成mongo

时间:2019-08-20 00:30:22      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:source   用户数   findall   继承   ebs   XML   enter   app   objectid   

大家可以关注我的微信公众号“秦川以北” 后续更多精彩实用内容分享

 

?在项目中配置,mongoDB数据库,spring整合

1. 引入pom依赖

<dependency>   
<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2. 在配置文件中配置mongo库信息

  spring: 

    data:   

      mongodb:     

          database: data     

     username: data     

     password: 1xxx

     host: localhost     

     port: 27017

 

3. 编写你要使用的mongo库中某个collection的实体类,我在这里用的是data

 1 @Document(collection = "data")
 2 @Data
 3 public class DataMongoObject implements Serializable {
 4     private static final long serialVersionUID = 1L;
 5     /**
 6      * objectId,无需设值
 7      */
 8     @Id
 9     private String id;
10 ?
11     private String token;
12     /**
13      * 数据源名称
14      */
15     private String sourceName;
16     /**
17      * 数据源描述
18      */
19     private String sourceDesc;
20 ?
21     private String updateTime;
22 ?
23     private String dataType = "json";
24     /**
25      * 用户数据
26      */
27     private Object data;
28 ?
29 }

  这个实体类需要实现序列化接口

  这里的@Document,说明使用的当前库中的那个collection

  下面的@Data是lombok中的功能,根据你定义的字段自动注入setter和getter等方法

4. 编写操作mongo的接口

 1 public interface DataRepository extends MongoRepository<DataMongoObject, String> {
 2 ?
 3     /**
 4      * 通过token进行数据查询,非GridFS
 5      *
 6      * @param token
 7      * @return
 8      */
 9     DataMongoObject findByToken(String token);
10 ?
11     /**
12      * 通过sourceName进行查询
13      *
14      * @param sourceName
15      * @param pageable
16      * @return
17      */
18     Page<DataMongoObject> findBySourceName(String sourceName, Pageable pageable);
19 ?
20     @Override
21     @Query(value = "{‘updateTime‘:{‘$gte‘:‘1564478681215‘}}")
22     Page<DataMongoObject> findAll(Pageable pageable);
23 ?
24 //    @Query(value = "{‘requestArgs.website‘:?0}")
25 //    Page<DataMongoObject> findByRequestArsWebsite(String website, Pageable pageable);
26 }

  编写自己的mongo操作类DataRepository继承MongoRepository

  根据自己的需要些一些CRUD

  @Query注解中时mongo的查询条件,

  上面的意思是查询在1564478681215这个时间之后的数据

5. 编写你的实现类去写具体的CRUD逻辑,以及一些判断条件

如果你只是想使用mongoRepository已经定义好的操作方法,

这个步骤也可以省去,直接看第6步

 1 @Slf4j
 2 @Service
 3 public class GridFsMongoService {
 4 ?
 5     @Autowired
 6     private DataRepository dataRepository;
 7 ?
 8     public void findAll(int pageNum,int pageSize) {
 9         Page<DataMongoObject> all1 = dataRepository.findAll(new PageRequest(--pageNum, pageSize));
10     }
11 }

@Service注解表明这是一个bean,功能是上面第4步mongo操作接口的实现类

6. 编写controller,对数据进行访问

 1 @Slf4j
 2 @RestController
 3 @RequestMapping("/api/mongo")
 4 public class ParsedDataController {
 5     @Autowired
 6     private DataRepository dataRepository;
 7   /**
 8        * page从零开始的,这里做了处理,从1开始
 9        *
10        * @param pageNum
11        * @param pageSize
12        * @return
13        */
14       @GetMapping("/data/all")
15       public String findAll(Integer pageNum, Integer pageSize) {
16           ResultInfo resultInfo = new ResultInfo();
17           try {
18               if (StringUtil.isEmpty(pageNum) || pageNum < 1 || pageNum >= Consts.MAX_SIZE) {
19                   pageNum = Consts.DEFAULT_PAGE_NUM;
20               }
21   
22               if (StringUtil.isEmpty(pageSize) || pageSize < 1 || pageSize >= Consts.MAX_SIZE) {
23                   pageSize = Consts.DEFAULT_PAGE_SIZE;
24               }
25   
26               Page<DataMongoObject> all = dataRepository.findAll(new PageRequest(--pageNum, pageSize));
27               resultInfo.setSuccess(true);
28               resultInfo.setDetail(all);
29           } catch (Exception e) {
30               LOGGER.error(e.getMessage(), e);
31           }
32           return resultInfo.toString();
33       }
34    }

 

关注公众号秦川以北

后续更多精彩实用内容分享!

技术图片

 

springboot集成mongo

标签:source   用户数   findall   继承   ebs   XML   enter   app   objectid   

原文地址:https://www.cnblogs.com/qinyuanyuan/p/11380476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!