4.6pom.xml
5.代码接口测试
详细分享如下:
1.安装MongoDB
===========
这里略,详情请参考《window安装MongoDB详解》博客
2.idea创建SpringBoot项目
====================
这里略,详情请参考《idea中基于MongoDB,创建SpringBoot项目》博客
3.idea连接MongoDB
===============
这里略,详情请参考《idea安装Mongo Plugin插件,连接MongoDB_一火的专栏-CSDN博客》博客
4.编写代码
======
4.1连接MongoDB配置文件
spring.data.mongodb.host=127.0.0.1
spring.data.mongodb.port=27017
spring.data.mongodb.database=user
4.2实体代码
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
/**
- 实体层
*/
@Document(collection=“user”)
public class User {
@Id // 指定ID
private String id;
@Field(“name”) // 指定域名,覆盖默认
private String name;
@Field(“password”) // 指定域名,覆盖默认
private String password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
4.3dao代码
@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
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
终极手撕架构师的学习笔记:分布式+微服务+开源框架+性能优化
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
8688)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
终极手撕架构师的学习笔记:分布式+微服务+开源框架+性能优化
[外链图片转存中…(img-jbdAVq4i-1713446548689)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!