使用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);
    }

}
相关推荐
寻星探路8 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
曹牧10 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
爬山算法11 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
kfyty72511 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai
猫头虎11 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
李少兄11 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
忆~遂愿11 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
小韩学长yyds11 小时前
Java序列化避坑指南:明确这4种场景,再也不盲目实现Serializable
java·序列化
仟濹11 小时前
【Java基础】多态 | 打卡day2
java·开发语言