SpringBoot 整合 MongoDB 之 MongoTemplate 实现 CRUD、分页接口
发布日期:2021-06-30 16:50:45
浏览次数:3
分类:技术文章
本文共 4163 字,大约阅读时间需要 13 分钟。
一、前言
最近 ITAEM 团队的一个前端女生使用了 node+MongoDB 做了一个视频网站,效果相当不错,这勾起了笔者尘封已久的 MongoDB 记忆,于是结合目前最为流行的后台框架 SpringBoot,做了一个一般项目常用后台的接口 CRUD 操作
1、基础
2、参考 ① ② 《SpringBoot2 精髓》李家智 著
二、代码
talk is cheap show me the code
1、代码结构
2、实体
package com.cun.entity;import org.springframework.data.annotation.Id;import org.springframework.data.mongodb.core.mapping.Document;import org.springframework.data.mongodb.core.mapping.Field;/** * 实体层 * @author linhongcun * */@Document(collection="t_user")public class User { @Id // 指定ID private String id; @Field("userName") // 指定域名,覆盖默认 private String userName; @Field("password") // 指定域名,覆盖默认 private String password; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}
3、控制层
package com.cun.controller;import java.util.HashMap;import java.util.List;import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.core.query.Criteria; //这个包最容易导错import org.springframework.data.mongodb.core.query.Query;import org.springframework.web.bind.annotation.DeleteMapping;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.PutMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import com.cun.entity.User;import springfox.documentation.swagger2.annotations.EnableSwagger2;/** * 控制层 * @author linhongcun * */@RestController@RequestMapping("/user")@EnableSwagger2public class UserController { @Autowired MongoTemplate mongoTemplate; /** * 1、增 * @param user * @return */ @PostMapping("/insert") public User insertUser(User user) { // 可以用 save 替代 mongoTemplate.insert(user); return user; } /** * 2、查 * @param id * @return */ @GetMapping("/get/{id}") public User getUserById(@PathVariable String id) { return mongoTemplate.findById(id, User.class); } /** * 3、删 * @param id * @return */ @DeleteMapping("/delete/{id}") public User deleteUserById(@PathVariable String id) { User user = mongoTemplate.findById(id, User.class); mongoTemplate.remove(user); return user; } /** * 4、改 * @param user * @return */ @PutMapping("/update") public User updateUser(User user) { // save 可增可改! mongoTemplate.save(user); return user; } /** * 5、全 * @return */ @GetMapping("/get/all") public ListgetAllUsers() { return mongoTemplate.findAll(User.class); } /** * 6、查 ++:属性、分页 * @param user * @param page * @param size * @return */ @GetMapping("/select/{page}/{size}") public Map selectUserByProperty(User user, @PathVariable int page, @PathVariable int size) { // 条件 Criteria criteria1 = Criteria.where("userName").is(user.getUserName()); Criteria criteria2 = Criteria.where("password").is(user.getPassword()); Query query = new Query(); if (user.getUserName() != null) { query.addCriteria(criteria1); } if (user.getPassword() != null) { query.addCriteria(criteria2); } // 数量 long total = mongoTemplate.count(query, User.class); // 分页 query.skip((page - 1) * size).limit(size); List data = mongoTemplate.find(query, User.class); Map map = new HashMap (); map.put("data", data); map.put("total", total); return map; }}
4、yml
server: context-path: / port: 80spring: data: mongodb: uri: mongodb://120.79.197.131:27018/test #编码自动为UTF-8,没有中文乱码!
5、pom
还有 Swagger 依赖
io.springfox springfox-swagger2 2.7.0 io.springfox springfox-swagger-ui 2.6.1
三、效果
Swagger测试页面:
可以大胆地进行测试,接口均测试过,都是没有问题的
转载地址:https://larger5.blog.csdn.net/article/details/79760317 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月28日 06时12分32秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Machine Learning with MATLAB 1.1 to 2.2
2019-04-30
Learning DSP with MATLAB
2019-04-30
用MATLAB实现m序列的生成(MATLAB 2021a适用)
2019-04-30
MATLAB函数备忘(定期更新)
2019-04-30
13行MATLAB代码实现网络爬虫 爬取NASA画廊星图
2019-04-30
MATLAB指定路径保存图片方法
2019-04-30
Python一键获取微信推送封面图
2019-04-30
油猴脚本:微信推送浏览功能拓展
2019-04-30
JavaScript DOM对象操作详解
2019-04-30
JavaScript 表单操作与MD5加密
2019-04-30
JAVA学习笔记4 - 循环与分支结构
2019-04-30
JAVA学习笔记6 - 数组
2019-04-30
JAVA学习笔记8 - Stream 和 File I/O
2019-04-30
JAVA学习笔记9 - 异常
2019-04-30
JAVA学习笔记10 - 继承
2019-04-30
JAVA学习笔记11 - 接口interface
2019-04-30
JAVA学习笔记12 - 包package
2019-04-30
Android 开发学习笔记 00 - Getting Started
2019-04-30
【学习笔记】Android Activity
2019-04-30