spring data 连接mongodb的两种方式

yizhihongxing

以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日

相关文章

  • MongoD管理数据库的方法介绍

    下面是MongoDB管理数据库的完整攻略: MongoDB管理数据库的方法介绍 背景介绍 MongoDB是一款非关系型数据库,具有高可扩展性、高性能、高灵活性等优点。本文将介绍MongoDB的管理方法,帮助管理员更好地管理MongoDB数据库。 常用的MongoDB管理工具 MongoDB提供了多个工具来帮助管理员管理数据库,常用的包括: Mongo She…

    MongoDB 2023年5月16日
    00
  • mongodb在windows下的安装步骤分享

    下面我将为您详细讲解MongoDB在Windows下的安装步骤分享。 MongoDB在Windows下的安装步骤分享 1. 下载MongoDB 首先,您需要前往MongoDB官网(https://www.mongodb.com/)下载MongoDB的Windows版本。 在官网的“Download”页面中,选择“Community Server”版本,并根据…

    MongoDB 2023年5月16日
    00
  • Nginx之proxy_redirect使用详解

    Nginx之proxy_redirect使用详解 什么是proxy_redirect proxy_redirect是Nginx的一个指令,它用于替换反向代理所返回的响应头中的Location和Refresh字段来将页面重定向指向正确的地址。 proxy_redirect的使用方法 在Nginx的配置文件中,我们可以使用以下语法来启用proxy_redirec…

    MongoDB 2023年5月16日
    00
  • 通过淘宝数据爬虫学习python scrapy requests与response对象

    通过淘宝数据爬虫学习Python Scrapy Requests与Response对象的攻略,可以分为以下几个步骤: 安装Requests模块 首先需要安装Requests模块,可以通过命令行在Python环境下安装: pip install requests 发送请求获取页面 使用Requests模块发送请求,获取淘宝某个商品的页面: import req…

    MongoDB 2023年5月16日
    00
  • windows下mongodb安装与使用图文教程(整理)

    以下是“Windows下MongoDB安装与使用图文教程(整理)”的完整攻略: 一、MongoDB简介 MongoDB是一款高性能、高可用性的NOSQL数据库,它具有众多优点,例如:易部署,易扩展,易使用等等。此外,MongoDB还支持海量数据处理,并且具有强大的查询和索引功能。 二、Windows下MongoDB安装步骤 2.1 下载MongoDB 首先要…

    MongoDB 2023年5月16日
    00
  • Mongodb常见错误与解决方法小结(Mongodb中经常出现的错误)

    MongoDB常见错误与解决方法小结 常见错误类型 连接错误 连接 MongoDB 数据库时,可能会出现如下错误: MongoNetworkError: 表示在尝试连接到 MongoDB 服务器时遇到网络错误,例如:无法解析主机名、无法连接到服务器等。 MongoTimeoutError: 表示尝试连接到 MongoDB 服务器时,连接超时。 连接错误解决方…

    MongoDB 2023年5月16日
    00
  • 使用mongoshake实现mongodb数据同步的操作方法

    下面就是“使用mongoshake实现mongodb数据同步的操作方法”的完整攻略。 1. 什么是mongoshake mongoshake是一个开源的、基于Go语言的MongoDB数据同步工具,它的主要功能是实时同步MongoDB数据到目标数据库中,适用于数据量大、数据更新频繁的场景。 2. 安装mongoshake mongoshake的安装非常简单,只…

    MongoDB 2023年5月16日
    00
  • Spring Boot中使用MongoDB数据库的方法

    下面我将为您详细讲解”Spring Boot中使用MongoDB数据库的方法”的完整攻略,并提供包含两条示例说明的演示代码。 1. 引入所需依赖 在使用MongoDB数据库前,需要在pom.xml文件中添加MongoDB的依赖项: <dependency> <groupId>org.springframework.boot</g…

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