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

}
相关推荐
长河25 分钟前
优化 Spring Boot API 性能:利用 GZIP 压缩处理大型有效载荷
java·spring boot·后端
编程乐学(Arfan开发工程师)26 分钟前
34、请求处理-【源码分析】-Model、Map原理
java·开发语言·spring boot·后端
保持学习ing26 分钟前
帝可得 - 策略管理
java·javascript·vue.js·elementui·若依框架
MyikJ28 分钟前
Java面试实战:从Spring Boot到微服务与AI的全栈挑战
java·大数据·spring boot·微服务·ai·面试·架构设计
Aric_Jones43 分钟前
HashMap 的底层原理
java·eclipse·maven·hashmap·hash
多多*44 分钟前
蓝桥杯国赛训练 day1
java·开发语言·数据库·redis·缓存·职场和发展·蓝桥杯
考虑考虑1 小时前
Springboot3.5.x版本Redis新特性
spring boot·后端·spring
好奇的菜鸟1 小时前
Java数据校验:确保数据完整性和正确性
java·开发语言
网安INF2 小时前
密码学:解析Feistel网络结构及实现代码
java·网络安全·密码学·des·feistel
萝卜白菜。2 小时前
关于TongWeb数据源兼容mysql驱动的注意事项
java·mysql