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

}
相关推荐
研究点啥好呢2 分钟前
快手多模态算法工程师面试题精选:10道高频考题+答案解析
java·开发语言·人工智能·ai·面试·笔试
遗憾随她而去.4 分钟前
Java学习(一)
java·开发语言·学习
陌路物是人非14 分钟前
记一个controller入参为null的奇怪问题
java·开发语言
小瓦码J码19 分钟前
Spring boot 如何自定义加密解密数据库连接配置
java
XiYang-DING19 分钟前
【Java EE】JUC的常见类(Callable、ReentrantLock、Semaphore和CountDownLatch )
java·java-ee
RuoyiOffice21 分钟前
2026 年开源 BPM/工作流引擎大盘点:Flowable vs Camunda vs Activiti vs Turbo——谁才是企业级首选?
java·spring boot·后端·开源·流程图·ruoyi·anti-design-vue
SamDeepThinking26 分钟前
别把业务逻辑塞进存储过程,适当用表驱动法
java·后端·架构
HZY1618yzh28 分钟前
洛谷题解:P16304 [蓝桥杯 2026 省 Java C 组] 抽奖活动
java·c++·算法·蓝桥杯
java1234_小锋37 分钟前
Spring AI 2.0 开发Java Agent智能体 - Advisors —— 拦截器模式增强AI能力
java·人工智能·spring·ai·spring ai2.0
Komore31541 分钟前
商户查询缓存
java·redis·缓存