当前位置: 首页 > news >正文

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

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

1.application.properties配置

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

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

@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;
}

 

@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.声明接口,可在接口定义自定义查询方法:

public interface FirstRepository extends MongoRepository<UserData, String> {

}

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

@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.运行实例即可

@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);
    }

}

相关文章:

  • 嵌入式人工智能应用- 第九章 物体识别
  • 织梦dedecmsV5.7提示信息提示框美化(带安装教程和效果展示)
  • 【NLP】 3. Distributional Similarity in NLP(分布式相似性)
  • AI数字人分身系统(Digital Human System)的源码开发、SaaS平台模型技术方案和开发步骤
  • 自由学习记录(44)
  • 2.4滑动窗口专题:将 x 减到 0 的最小操作数
  • GOC学习
  • LeetCode 3340.检查平衡字符串:模拟
  • C++模板特化与偏特化
  • 315周六复盘(118)本周回顾
  • Java中类和对象
  • R语言的移动应用开发
  • 对称加密算法及其在网页逆向分析中的应用
  • BT-Basic函数之首字母F
  • 六十天前端强化训练之第二十天React Router 基础详解
  • Redis学习
  • 栈区、堆区、静态区
  • STL之关联容器(map ,set)
  • 【AI 加持下的 Python 编程实战 2_03】第二章:Copilot 辅助编程入门——环境搭建、基本工作流程以及数据分析案例演示(含本地实测)
  • PAT甲级(Advanced Level) Practice 1021 Deepest Root
  • 国家发改委:美芯片药品等领域关税影响全球科技发展,损害人类共同利益
  • 援藏博士张兴堂已任西藏农牧学院党委书记、副校长
  • 夜读丨古代有没有近视眼?
  • 习近平向“和平薪火 时代新章——纪念中国人民抗日战争和苏联伟大卫国战争胜利80周年中俄人文交流活动”致贺信
  • 国铁集团:铁路五一假期运输收官,多项运输指标创历史新高
  • 金融监管总局将出八大增量政策,李云泽详解稳楼市稳股市“组合拳”