使用spring data MongoDB对MongoDB进行简单CURD操作示例

本文章为作者个人学习笔记,仅作参考。

1.application.properties配置

Lisp 复制代码
spring.data.mongodb.database=[数据库名]
spring.data.mongodb.host=localhost[主机名,本机:localhost]
spring.data.mongodb.port=[数据库端口,默认:27017]

2.根据数据库文档定义实体类:

java 复制代码
@RequiredArgsConstructor
@ToString
@Document(collection = "first")
@Setter
public class UserData {
    @MongoId
    ObjectId id;
    @NonNull
    private Integer code;
    @NonNull
    private String name;

    @Field("data")
    private Data data;

    private String message;
    @Field("refresh_token")
    private  String refreshToken;
    private String status;
    private Integer ttl;
}
java 复制代码
@Persistent
@Collation
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface Document {
    @AliasFor("collection")
    String value() default ""; // 指定文档名

    @AliasFor("value")
    String collection() default ""; // 指定文档名

    String language() default ""; // 指定文档语言

    @AliasFor(
        annotation = Collation.class,
        attribute = "value"
    )
    String collation() default ""; // 指定排序规则
}

3.声明接口,可在接口定义自定义查询方法:

java 复制代码
public interface FirstRepository extends MongoRepository<UserData, String> {

}

4.注入依赖,可使用自带的插入等方法

java 复制代码
@Repository
public class Example {
    private final FirstRepository firstRepository;
    @Autowired
    public Example(FirstRepository firstRepository) {
        this.firstRepository = firstRepository;
    }

    public void  insert(UserData userData) {
        firstRepository.save(userData);
        System.out.println("插入完成!");
    }
}

5.运行实例即可

java 复制代码
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(DemoApplication.class, args);

        UserData userData = new UserData(200, "xzt");
        Data data = new Data(400);
        userData.setData(data);
        Example example = context.getBean(Example.class);
        example.insert(userData);
    }

}
相关推荐
BD_Marathon13 小时前
【JavaWeb】启动tomcat报错:启动子级时出错
java·tomcat
while(1){yan}13 小时前
网络协议TCP
java·网络·网络协议·tcp/ip·青少年编程·电脑常识
一过菜只因13 小时前
JavaWeb后端(spring--boot)
java·开发语言
yuyu_030414 小时前
SOHE智能厨余垃圾处理系统
java·vue
IT枫斗者14 小时前
Netty的原理和springboot项目整合
java·spring boot·后端·sql·科技·mysql·spring
Edward1111111114 小时前
普通java项目转为maven项目 J文件后缀.java变C文件
java·开发语言·maven
一雨方知深秋14 小时前
二.java程序基本语法
java·类型转换·变量·方法·运算符·字面量·关键字标识符
Java程序之猿14 小时前
Springboot 集成apache-camel +mqtt 根据主题处理mqtt消息
java·spring boot·后端
悟空码字14 小时前
SpringBoot 整合 ElasticSearch,给搜索插上“光速翅膀”
java·后端·elasticsearch
骚戴14 小时前
DeepSeek V3 & Llama 3 推理避坑指南:自建 vLLM 集群 vs API 网关架构深度对比
java·人工智能·python·大模型·api·vllm