spring data 连接mongodb的两种方式

以Spring Boot为例,连接MongoDB有两种主要方式:使用MongoTemplate或使用MongoRepository。

使用MongoTemplate

  1. 添加MongoDB和Spring Data MongoDB依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
</dependency>
  1. 在application.properties中添加数据库配置
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=yourusername
spring.data.mongodb.password=yourpassword
spring.data.mongodb.database=yourdbname
  1. 创建实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(collection = "users")
public class User {
    @Id
    private String id;
    private String name;
    private Integer age;
}
  1. 创建MongoTemplate
@Configuration
public class MongoConfig {
    @Autowired
    private MongoClient mongoClient;

    @Bean
    public MongoTemplate mongoTemplate() {
        return new MongoTemplate(mongoClient, "yourdbname");
    }
}
  1. 在service/dao层使用MongoTemplate
@Service
public class UserService {
    @Autowired
    private MongoTemplate mongoTemplate;

    public void saveUser(User user) {
        mongoTemplate.save(user);
    }

    public User getUser(String id) {
        Query query = Query.query(Criteria.where("_id").is(id));
        return mongoTemplate.findOne(query, User.class);
    }

    public void updateUser(User user) {
        Query query = Query.query(Criteria.where("_id").is(user.getId()));
        Update update = new Update();
        update.set("name", user.getName());
        update.set("age", user.getAge());
        mongoTemplate.updateFirst(query, update, User.class);
    }

    public void deleteUser(String id) {
        Query query = Query.query(Criteria.where("_id").is(id));
        mongoTemplate.remove(query, User.class);
    }
}

使用MongoRepository

  1. 添加MongoDB和Spring Data MongoDB依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
</dependency>
  1. 在application.properties中添加数据库配置
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=yourusername
spring.data.mongodb.password=yourpassword
spring.data.mongodb.database=yourdbname
  1. 创建实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(collection = "users")
public class User {
    @Id
    private String id;
    private String name;
    private Integer age;
}
  1. 创建MongoRepository
public interface UserRepository extends MongoRepository<User, String> {
    User findByName(String name);
}
  1. 在service/dao层使用MongoRepository
@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;

    public void saveUser(User user) {
        userRepository.save(user);
    }

    public User getUser(String id) {
        return userRepository.findById(id).orElse(null);
    }

    public void updateUser(User user) {
        userRepository.save(user);
    }

    public void deleteUser(String id) {
        userRepository.deleteById(id);
    }
}

以上就是使用MongoTemplate和MongoRepository两种方式连接MongoDB的完整攻略。

示例:实现一个简单的用户登录和注册功能

  1. 创建UserController,添加REST接口
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping("/register")
    public String register(@RequestBody User user) {
        if (userService.getUserByName(user.getName()) != null) {
            return "用户名已存在";
        } else {
            userService.saveUser(user);
            return "注册成功";
        }
    }

    @PostMapping("/login")
    public String login(@RequestBody User user) {
        User foundUser = userService.getUserByName(user.getName());
        if (foundUser == null) {
            return "用户不存在";
        } else if (foundUser.getPassword().equals(user.getPassword())) {
            return "登录成功";
        } else {
            return "密码错误";
        }
    }
}
  1. 修改UserService,添加getUserByName方法
@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;

    public void saveUser(User user) {
        userRepository.save(user);
    }

    public User getUserById(String id) {
        return userRepository.findById(id).orElse(null);
    }

    public User getUserByName(String name) {
        return userRepository.findByName(name);
    }

    public void updateUser(User user) {
        userRepository.save(user);
    }

    public void deleteUser(String id) {
        userRepository.deleteById(id);
    }
}
  1. 修改User实体类,添加password属性
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(collection = "users")
public class User {
    @Id
    private String id;
    private String name;
    private Integer age;
    private String password;
}
  1. 注册新用户
POST /user/register HTTP/1.1
Content-Type: application/json

{
    "name": "test",
    "age": 18,
    "password": "123456"
}
  1. 登录已存在的用户
POST /user/login HTTP/1.1
Content-Type: application/json

{
    "name": "test",
    "password": "123456"
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring data 连接mongodb的两种方式 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • MongoDB在Windows平台的安装及配置方法

    下面是“MongoDB在Windows平台的安装及配置方法”的完整攻略。 安装MongoDB 下载MongoDB安装包,可在MongoDB官网下载。选择Windows系统下的.msi版本。 执行下载的.msi文件,进入安装步骤。选择默认安装路径,设置环境变量,完成安装。 验证MongoDB是否安装成功。打开命令行工具,输入 mongo 命令,成功连接并显示 …

    MongoDB 2023年5月16日
    00
  • mongodb数据库入门学习笔记之下载、安装、启动、连接操作解析

    MongoDB数据库入门学习笔记 下载 前往MongoDB官网下载对应的安装包,选择适合自己操作系统的版本进行下载。 安装 对于Windows系统: 双击下载好的安装包 mongodb-setup-version-number.exe 文件,根据提示进行安装。 安装成功后默认安装在 C:\Program Files\MongoDB\Server\versio…

    MongoDB 2023年5月16日
    00
  • springboot+mongodb 实现按日期分组分页查询功能

    下面我会详细讲解“springboot+mongodb 实现按日期分组分页查询功能”的完整攻略,并且会带上两条示例说明。 一、前置条件 已安装JDK 1.8及以上版本 已安装Maven 已安装MongoDB并启动 二、创建Springboot项目 在IDE中创建一个空的Springboot项目,项目依赖必须包含以下三个依赖: <dependency&g…

    MongoDB 2023年5月16日
    00
  • 阿里云服务器安装mongodb的方法

    下面是“阿里云服务器安装mongodb的方法”的完整攻略。 步骤一:安装 MongoDB 打开终端,输入以下命令以更新系统软件源: sudo apt update 安装 MongoDB: sudo apt install mongodb 启动 MongoDB 服务: sudo systemctl start mongodb 步骤二:配置 MongoDB 进入…

    MongoDB 2023年5月16日
    00
  • MongoDB更新文档方法详解

    MongoDB是一种流行的NoSQL数据库,提供了一个灵活的文档数据模型,使得更新文档相对来说很简单。在本文中,我们将学习在MongoDB中如何更新文档。 更新整个文档 更新整个文档就是把旧的文档替换成一个新的文档。下面是一个使用MongoDB shell语法更新整个文档的例子: db.inventory.updateOne( { item: "a…

    MongoDB 2023年3月14日
    00
  • MongoDB凭什么跻身数据库排行前五

    MongoDB作为一种文档型数据库,与传统的关系型数据库相比,在处理非结构化数据方面表现更为出色。它是由C++语言开发的一款开源、跨平台的数据库系统,自发布以来备受欢迎。接下来,我将详细讲解MongoDB跻身数据库排行前五的完整攻略。 一、优秀的性能表现 MongoDB凭借其出色的性能表现,受到了广大开发者的喜爱。它的性能表现主要体现在以下两个方面: 1.1…

    MongoDB 2023年5月16日
    00
  • IDEA 2020.3 更新了机器学习都整上了

    标题:IDEA 2020.3 更新了机器学习都整上了 总览:IntelliJ IDEA 2020.3版本已经更新,其中新增了许多关于机器学习的功能,本文将详细介绍IDEA 2020.3 更新后关于机器学习的具体操作流程,以及为何这些新功能对于开发者和数据科学家非常有用。 步骤一:安装IDEA 2020.3版本首先,你需要从官方网站下载并安装IDEA 2020…

    MongoDB 2023年5月16日
    00
  • 数据库日常练习题,每天进步一点点(2)

    下面我会针对“数据库日常练习题,每天进步一点点(2)”的完整攻略进行详细讲解,并包含两条示例说明。具体内容如下: 1. 学习前的准备 在学习这些练习题之前,需要对关系型数据库的相关知识有所了解,如表的创建、插入数据、查询、更新、删除等基本操作,以及涉及到的 SQL 语句的语法规则。如果您还没有这方面的背景知识,可以先学习相关的教程或书籍,比如课程类网站上的课…

    MongoDB 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部