• 一键学会springboot整合mongodb实现增删改查


    本文将从工程的建立到mongo的使用进行讲解。

    一、创建工程

    仅选择Spring Web、Spring Data MongoDB即可

    到此工程建立完毕,就会建立一个mongo基础的java工程了。

    二、环境依赖

    1. org.springframework.boot
    2. spring-boot-starter-data-mongodb
    3. org.springframework.boot
    4. spring-boot-starter-web
    5. org.springframework.boot
    6. spring-boot-starter-test
    7. test
    8. org.projectlombok
    9. lombok
    10. true

     三、mongo库配置和文件配置

    如果是第一次使用mongo,需要创建用户

    1. > use mydb
    2. switched to db mydb
    3. > db.createUser({user:"user", pwd:"123456", roles:[{role:"readWriteAnyDatabase", db:"mydb"}]});
    4. Successfully added user: {
    5. "user" : "user",
    6. "roles" : [
    7. {
    8. "role" : "readWriteAnyDatabase",
    9. "db" : "mydb"
    10. }
    11. ]
    12. }

    momgo权限

     配置文件。根据自己的实际库名称将properties配置完整。

    1. spring.data.mongodb.authentication-database=mydb
    2. spring.data.mongodb.host=127.0.0.1
    3. spring.data.mongodb.port=27017
    4. spring.data.mongodb.username=user
    5. spring.data.mongodb.password=password
    6. # 指定使用的数据库
    7. # 不必预先创建,不存在该数据库会自动创建
    8. spring.data.mongodb.database=db_user

    四、创建实体类

    1. @NoArgsConstructor
    2. @AllArgsConstructor
    3. @Accessors(chain = true)
    4. @Data
    5. public class User {
    6. @Id
    7. private String id;
    8. public String name;
    9. private String age;
    10. }

    五、创建dao层和实现类

    在dao层里面创建自己需要的方法。本次将增删改查方法列出来

    1. public interface UserDao {
    2. //增加
    3. void saveStu(User user);
    4. //删除
    5. void deleteUser(String id);
    6. //修改
    7. void updateUser(User user);
    8. //根据id获取user
    9. User getUserById(String id);
    10. //获取全部user
    11. ListgetAllUser();
    12. }
    1. @Repository
    2. public class UserService implements UserDao {
    3. @Resource
    4. private MongoTemplate mongoTemplate;
    5. @Override
    6. public void saveStu(User user) {
    7. mongoTemplate.save(user);
    8. }
    9. @Override
    10. public void deleteUser(String id) {
    11. User user = mongoTemplate.findById(id,User.class);
    12. mongoTemplate.remove(user);
    13. }
    14. @Override
    15. public void updateUser(User user) {
    16. mongoTemplate.save(user);
    17. }
    18. @Override
    19. public User getUserById(String id) {
    20. return mongoTemplate.findById(id,User.class);
    21. }
    22. @Override
    23. public List getAllUser() {
    24. return mongoTemplate.findAll(User.class);
    25. }
    26. }

    六、测试

    1. @SpringBootTest
    2. @Slf4j
    3. class MongoTestApplicationTests {
    4. @Resource
    5. private UserDao userDao;
    6. //插入十个user实例
    7. @Test
    8. void contextLoads() {
    9. for (int i = 0; i<10;i++ ){
    10. User user = new User()
    11. .setId(String.valueOf(i+1))
    12. .setName("小明")
    13. .setAge("10");
    14. log.info("名字============{}", user);
    15. userDao.saveStu(user);
    16. }
    17. }
    18. //删除id为2的user
    19. @Test
    20. void deleteUser(){
    21. userDao.deleteUser("2");
    22. }
    23. //修改
    24. @Test
    25. void updateUser(){
    26. User user = userDao.getUserById("3");
    27. //将id为3的user的age修改为20
    28. user.setAge("20");
    29. userDao.updateUser(user);
    30. }
    31. //根据id获取user
    32. @Test
    33. void getUserById(){
    34. User user = userDao.getUserById("5");
    35. log.info("id=5的用户为=================:{}",user);
    36. }
    37. void getAllUser(){
    38. Listlist = userDao.getAllUser();
    39. list.forEach(System.out::println);
    40. }
    41. }

    七、测试结果

    1、db_user库开始的时候并没有。随着我们对db_user做操作,这个库相应生成

    第一部分是之前的库名,下面部分是执行save操作后生成的库。

     2、save操作生成的user。是根据代码生成的十个user实例

     3、删除id为2的user,图中可以看出已经删除 

    4、修改id为3的user的age为20,图中可以看到已经修改

     5、根据id获取id=5的user,图中可以看到已经获取到

     6、获取所有user,图中可以看到都已获取到

     以上就是springboot整合mongodb的完整使用。按照这个流程来一遍吧!

  • 相关阅读:
    JavaScript高级,ES6 笔记 第四天
    Android Fragment中使用Arouter跳转到Activity后返回Fragment不回调onActivityResult
    javaScript的for循环语句练习之解决鸡兔同笼问题(基础版)
    扎实打牢数据结构算法根基,从此不怕算法面试系列之007 week01 02-07 简单的复杂度分析
    Mojo:为Web应用程序提供了完整的框架,包括路由、模板、插件、Websocket、HTTP客户端、HTTP服务器、配置文件管理等功能
    论语第一篇-学而
    【TypeScript】模块化和类型声明规则
    pip Command Not Found – Mac 和 Linux 错误被解决
    win11系统下,迅雷启动后闪退的问题
    01_从JDK源码级别剖析JVM类加载机制
  • 原文地址:https://blog.csdn.net/ProBaiXiaodi/article/details/126734358