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

}
相关推荐
2401_894915537 小时前
GEO 优化源码全解析:从搜索引擎到 AI 引擎的底层改写逻辑
java·服务器·前端·数据库·人工智能·分布式·搜索引擎
Java牛马11 小时前
SpringBoot Starter 依赖相关总结
java·spring·springboot·starter·自动装配·依赖
吴声子夜歌12 小时前
Java面试——Spring Cloud原理及应用(二)
java·spring cloud·面试
东小西12 小时前
【SAA实战】第 1 篇:ReactAgent 入门——先撸个"会调工具的助手"跑起来
java·人工智能·spring
mqiqe13 小时前
AgentScope Java 2.0 协议集成全景解析:A2A、AG-UI、Agent Protocol 三大开放协议实战指南
java·开发语言·ui
脉动数据行情13 小时前
Java 实现台股 TWSE/TPEx 行情采集(个股 + K 线)
java·开发语言·twse·tpex·台股
月华路15 小时前
G1 GC 对数组与大对象(Humongous)的处理
java·jvm·算法
liangshanbo121516 小时前
虚拟列表深度面试题整理
java·开发语言·前端
gugucoding16 小时前
59. 【Java】Spring Boot 入门:第一个 Web 应用
java·开发语言·spring boot
10mAh17 小时前
【Java】HashMap 的 put 到底做了什么?——冲突、扩容与树化实测
java·开发语言·hash