Fork me on GitHub

java使用mangodb进行数据存储的简单操作

关于使用mangodb进行数据存储的简单操作

  1. 引入maven依赖

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    
  2. 具体代码

    实体对象如下:

    @Data
    public class User {
        private int id;
        private String name;
        private String password;
    }
    

    dao层代码示例:

    import org.springframework.data.mongodb.repository.MongoRepository;
    import org.springframework.data.mongodb.repository.Query;
    import java.util.List;
    public interface UserRepository extends MongoRepository<User, Integer> {
        //查詢操作,自定义实现
        @Query("{'name':?0}")
        User getByName(String name);
        List<User> getByNameLike(String name);
    }
    

    service实现层:

    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.data.mongodb.core.query.Update;
    import org.springframework.stereotype.Service;
    public class UserServiceImpl implements UserService {
        @Autowired
        private MongoTemplate mongoTemplate;
        @Autowired
        private UserRepository userRepository;
        @Override
        public void saveUser(User user) {
            userRepository.save(user);
        }
        @Override
        public void removeUserByName(String name) {
            Query query = new Query(new Criteria("name").is(name));
            mongoTemplate.remove(query, User.class);
        }
        @Override
        public void updateUser(User user) {
            Query query = new Query(new Criteria("id").is(user.getId()));
            Update update = new Update().set("name", user.getName());
            mongoTemplate.updateMulti(query, update, User.class);
        }
        @Override
        public User getByName(String name) {
            return userRepository.getByName(name);
        }
        @Override
        public User getByNameLike(String name) {
            return userRepository.getByNameLike(name).get(0);
        }
    }
    

    controller调用层:

    @RestController
    @RequestMapping("/mongodb")
    @Api(tags = "mongodb_test")
    public class UserController {
    
        @Autowired
        private UserService userService;
    
        @ApiOperation(value = "保存用户", tags = "保存用户")
        @PostMapping("/save")
        public Result saveUser(@RequestBody User user) {
            userService.saveUser(user);
            return Result.OK();
        }
    
        @ApiOperation(value = "删除用户", tags = "删除用户")
        @PostMapping("/remove")
        public Result removeUser(String name) {
            userService.removeUserByName(name);
            return Result.OK();
        }
    
        @ApiOperation(value = "更新用户", tags = "更新用户")
        @PostMapping("/update")
        public Result updateUser(@RequestBody User user) {
            userService.updateUser(user);
            return Result.OK();
        }
    
        @ApiOperation(value = "根据姓名查找用户", tags = "根据姓名查找用户")
        @PostMapping("/getByName")
        public Result getByName(String name) {
            userService.getByName(name);
            return Result.OK();
        }
    
        @ApiOperation(value = "根据姓名模糊查找用户", tags = "根据姓名模糊查找用户")
        @PostMapping("/getByNameLike")
        public Result getByNameLike(String name) {
            userService.getByNameLike(name);
            return Result.OK();
        }
    
    }
    
posted @ 2021-02-22 17:33  ayueC  阅读(323)  评论(0)    收藏  举报