@Service
public class UserDao {
@Autowired
private MongoTemplate mongoTemplate;
public User save(User user) {
mongoTemplate.insert(user);
return user;
}
public User getById(String id) {
return mongoTemplate.findById(id, User.class);
}
public User deleteById(String id) {
User user = mongoTemplate.findById(id, User.class);
mongoTemplate.remove(user);
return user;
}
public User update(User user) {
mongoTemplate.save(user);
return user;
}
public List getAllUsers() {
return mongoTemplate.findAll(User.class);
}
public Map<String, Object> query(String userName, int page, int size) {
// 条件
Criteria criteria1 = Criteria.where(“name”).is(userName);
Query query = new Query();
if (userName!= null) {
query.addCriteria(criteria1);
}
// 数量
long total = mongoTemplate.count(query, User.class);
// 分页
query.skip((page - 1) * size).limit(size);
List data = mongoTemplate.find(query, User.class);
Map<String, Object> map = new HashMap<String, Object>();
map.put(“data”, data);
map.put(“total”, total);
return map;
}
}
4.4service代码
@Service
public class UserService {
@Autowired
private UserDao userDao;
public User save(User user) {
return userDao.save(user);
}
public User getById(String id) {
return userDao.getById(id);
}
public User deleteById(String id) {
return userDao.deleteById(id);
}
public User update(User user) {
return userDao.update(user);
}
public List getAllUsers() {
return userDao.getAllUsers();
}
public Map<String, Object> query(String userName, int page, int size) {
return userDao.query(userName,page,size);
}
}
4.5controller代码
@RestController
@RequestMapping(“/user”)
@EnableSwagger2
public class UserController {
@Autowired
private UserService userService;
/**
-
增加
-
@param user
-
@return
*/
@PostMapping(“/insert”)
@ApiOperation (value = “insert”,notes = “插入”)
public User insertUser(User user) {
return userService.save(user);
}
/**
-
查询
-
@param id
-
@return
*/
@GetMapping(“/get/{id}”)
@ApiOperation (value = “get”,notes = “查询”)
public User getUserById(@PathVariable String id) {
return userService.getById(id);
}
/**
-
删除
-
@param id
-
@return
*/
@DeleteMapping(“/delete/{id}”)
@ApiOperation (value = “delete”,notes = “删除”)
public User deleteUserById(@PathVariable String id) {
return userService.deleteById(id);
}
/**
-
修改
-
@param user
-
@return
*/
@PutMapping(“/update”)
@ApiOperation (value = “update”,notes = “修改”)
public User updateUser(User user) {
return userService.update(user);
}
/**
-
查询所有的用户
-
@return
*/
@GetMapping(“/get/all”)
@ApiOperation (value = “getAll”,notes = “获取所有”)
public List getAllUsers() {
return userService.getAllUsers();
}
/**
-
分页查询用户
-
@param userName
-
@param page
-
@param size
-
@return
*/
@GetMapping(“/select/{page}/{size}”)
@ApiOperation (value = “select”,notes = “分页查询”)
public Map<String, Object> selectUserByProperty(String userName, @PathVariable int page, @PathVariable int size) {
return userService.query(userName,page,size);
}
}
4.6pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=“http://maven.apache.org/POM/4.0.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd”>
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.5.6
com.example
mongodb
0.0.1-SNAPSHOT
mongodb
Demo project for Spring Boot
<java.version>1.8</java.version>
io.springfox
springfox-swagger2
2.9.2
io.springfox
springfox-swagger-ui
2.6.1
org.springframework.boot
spring-boot-starter-data-mongodb
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework
spring-web
5.3.14
org.springframework
spring-webmvc
5.3.14
org.springframework.boot
spring-boot-maven-plugin
5.代码接口测试
========
访问http://localhost:8080/swagger-ui.html出现如下界面:
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-Q4EHUkZL-1715740944913)]
[外链图片转存中…(img-TYuYhU2e-1715740944914)]
[外链图片转存中…(img-lvgmnCk4-1715740944914)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!