SpringBoot 集成 MongoDB

打印 上一主题 下一主题

主题 813|帖子 813|积分 2439

       MongoDB是一个非常强大的非关系型数据库,他以集合的形式存储我们的数据到数据库,他灵活的数据结构以及便于快速迭代业务的使用场景,包括他强大的查询相应速度,导致应用场景越来越普遍,下面我们将讲解怎样使用我们的MongoDB集成我们的SpringBoot。
安装:

              这里讲解怎样在win10上面安装我们的MongoDB。下载地点。下载完成以后双击打开下载应用包。





背面一直下一步到完成就好。。。。。。。。。。,下面使用工具链接到我们的MongoDB,不需要账号暗码。

SpringBoot依赖:

  
  1. <dependency>
  2.     <groupId>org.springframework.boot</groupId>
  3.     <artifactId>spring-boot-starter-data-mongodb</artifactId>
  4.     <version>3.4.0</version>
  5. </dependency>
  6. <dependency>
  7.     <groupId>org.projectlombok</groupId>
  8.     <artifactId>lombok</artifactId>
  9.     <version>1.18.28</version>
  10.     <scope>compile</scope>
  11. </dependency>
复制代码

  1. spring.application.name=kafkaTest
  2. spring.data.mongodb.host=localhost
  3. spring.data.mongodb.port=27017
  4. spring.data.mongodb.database=mydatabase
  5. #不需要密码验证
  6. spring.data.mongodb.uri=mongodb://localhost:27017/mydatabase
  7. #需要密码验证
  8. #spring.data.mongodb.uri=mongodb://rootuser:rootpwd@localhost:27017/mydatabase
复制代码
  1. package org.aogo.kafkatest.entity;
  2. import lombok.Data;
  3. import lombok.experimental.Accessors;
  4. import org.springframework.data.annotation.Id;
  5. import org.springframework.data.mongodb.core.mapping.Document;
  6. @Document(collection = "users")
  7. @Data
  8. @Accessors(chain = true)
  9. public class User {
  10.     @Id
  11.     private String id;
  12.     private String username;
  13.     private String email;
  14. }
复制代码
  1. package org.aogo.kafkatest.api;
  2. import jakarta.annotation.Resource;
  3. import lombok.extern.slf4j.Slf4j;
  4. import org.aogo.kafkatest.entity.User;
  5. import org.aogo.kafkatest.server.UserService;
  6. import org.springframework.transaction.annotation.Isolation;
  7. import org.springframework.transaction.annotation.Transactional;
  8. import org.springframework.web.bind.annotation.*;
  9. @Slf4j
  10. @RestController
  11. @RequestMapping("/api/account")
  12. @CrossOrigin(origins = "*")
  13. public class AccountController {
  14.     @Resource
  15.     private UserService userService;
  16.     @GetMapping("test")
  17.     public User getUser() {
  18.         User user = new User();
  19.         user.setId("38");
  20.         user.setUsername("388");
  21.         user.setEmail("38888888@qq.com");
  22.         userService.saveUser(user);
  23.         if(user != null){
  24.             throw new RuntimeException("Username cannot be null");
  25.         }
  26.         //userService.getUserByUser("28");
  27.         return user;
  28.     }
  29. }
复制代码
  1. package org.aogo.kafkatest.server;
  2. import org.aogo.kafkatest.entity.User;
  3. import org.springframework.data.mongodb.repository.MongoRepository;
  4. public interface UserRepository extends MongoRepository<User, String> {
  5.     // 可以在这里定义一些自定义的查询方法
  6. }
复制代码
  1. package org.aogo.kafkatest.server;
  2. import org.aogo.kafkatest.entity.User;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.data.domain.*;
  5. import org.springframework.stereotype.Service;
  6. import java.util.List;
  7. @Service
  8. public class UserService {
  9.     private final UserRepository userRepository;
  10.     @Autowired
  11.     public UserService(UserRepository userRepository) {
  12.         this.userRepository = userRepository;
  13.     }
  14.     public void saveUser(User user) {
  15.         //保存或者更新
  16.         userRepository.save(user);
  17.     }
  18.     public User getUserById(String id) {
  19.         return userRepository.findById(id).orElse(null);
  20.     }
  21.     public Page<User> getUserByUser(String id) {
  22.         //分页
  23.         Pageable pageable = PageRequest.of(0, 10, Sort.by("id").descending()); // 第 0 页,每页 10 条数据
  24.         User user = new User();
  25.         user.setUsername("名稱");
  26.         Example<User> example = Example.of(user);
  27.         // 查询分页结果
  28.         Page<User> userPage = userRepository.findAll(example,pageable);
  29.         return userPage;
  30.     }
  31. }
复制代码
常用语法:

  1. //切换到数据库
  2. use mydatabase
  3. //创建用户并赋予权限
  4. db.createUser({
  5.   user: "rootuser",        // 用户名
  6.   pwd: "rootpwd",         // 密码
  7.   roles: [
  8.     { role: "readWrite", db: "mydatabase" }  // 给用户赋予mydatabase数据库的权限   权限类别给admin类别
  9.   ]
  10. })
  11. //查看用户
  12. show users
  13. //查看版本号
  14. db.version()
复制代码
  1. //插入数据
  2. db.users.insert({
  3.     _id: '50',
  4.     username: "7899",
  5.     email: "7899"
  6. })
  7. //查询文档
  8. db.users.find()
  9. //根据条件查询文档
  10. db.users.find({_id:'50'})
  11. //保存/更新
  12. db.users.save({
  13.     _id: '50',
  14.     username: "789911",
  15.     email: "7899"
  16. })
  17. //更新语句
  18. db.users.update(
  19.     { _id: "50" },  // 查询条件
  20.     {               // 更新的内容
  21.         $set: {
  22.             username: "789911",
  23.             email: "7899111"
  24.         }
  25.     }
  26. )
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

北冰洋以北

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表