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

Spring Boot: 使用MongoOperations操作mongodb

一、添加依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.edu.tju</groupId><artifactId>springbootmongo</artifactId><version>1.0-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.6</version><relativePath/> <!-- lookup parent from repository --></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency></dependencies></project>

二、定义实体类来映射mongodb中的collection

package cn.edu.tju.domain;import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;@Document(collection = "userInfo")
public class UserInfo {@Idprivate String id;private String username;private String password;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "UserInfo{" +"id='" + id + '\'' +", username='" + username + '\'' +", password='" + password + '\'' +'}';}
}

三、配置文件中配置mongodb

server.port=9006
#spring.data.mongodb.uri=mongodb://xx.xx.xx.xx:27017/test?maxPoolSize=512
spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false
spring.data.mongodb.username=root
spring.data.mongodb.password=pass
spring.data.mongodb.authenticationDatabase=admin
spring.data.mongodb.host=xx.xx.xx.xx
spring.data.mongodb.port=27017
spring.data.mongodb.database=test

四、注入自动配置的MongoOperations并使用

package cn.edu.tju.controller;import cn.edu.tju.domain.UserInfo;
import cn.edu.tju.repository.UserInfoRepository;
import com.mongodb.MongoClientSettings;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.MongoDatabaseFactory;
import org.springframework.data.mongodb.core.ExecutableFindOperation;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.management.Query;
import java.util.UUID;import static org.springframework.data.mongodb.core.query.Criteria.where;@RestController
public class DemoController {
/*    @Autowiredprivate UserInfoRepository userInfoRepository;*/@Autowiredprivate MongoDatabaseFactory mongo;@Autowiredprivate MongoTemplate mongoTemplate;@Autowiredprivate MongoClientSettings mongoClientSettings;@Autowiredprivate MongoOperations operations;@RequestMapping("/hay")public String hay(){UserInfo userInfo = new UserInfo();userInfo.setId(UUID.randomUUID().toString());userInfo.setUsername("kean");userInfo.setPassword("passwd");operations.insert(userInfo);UserInfo result = operations.query(UserInfo.class).matching(where("username").is("kean")).firstValue();return result.toString();}
}

这段代码创建了一个username为kean的文档,然后再通过username为kean这个条件去查询文档并返回给接口

相关文章:

  • Vue+SpringBoot打造智慧家政系统
  • 机器学习之无监督学习简介及算法库推荐
  • 学点Java_Day6_基于Copyright和Actions On Save的IDEA自动更新文件最后编辑时间的方法研究(IDEA2021.2及以上)
  • 联想笔记本的声音键没有反应怎么办?
  • Selenium 学习(0.21)——软件测试之单元测试
  • C语言案例01, 输入两个整数,获得两个数加减乘除的值,持续更新中~
  • 【Spring Cloud】微服务通信概述
  • 【C语言】结构体内存对齐问题
  • <JavaEE> 了解网络层协议 -- IP协议
  • 从零到一构建短链接系统(八)
  • 通过jsDelivr实现Github的图床CDN加速
  • Rust常用库之序列化和反序列化库serde(使用 Serde 处理json)
  • Visual Studio 2022下配置 OpenMP 多线程编程环境与运行
  • java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
  • 计算机网络相关
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【翻译】babel对TC39装饰器草案的实现
  • CSS实用技巧干货
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • EventListener原理
  • gitlab-ci配置详解(一)
  • Logstash 参考指南(目录)
  • markdown编辑器简评
  • mysql中InnoDB引擎中页的概念
  • nginx 配置多 域名 + 多 https
  • v-if和v-for连用出现的问题
  • Vim 折腾记
  • vue-cli3搭建项目
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 分享一份非常强势的Android面试题
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 微信小程序实战练习(仿五洲到家微信版)
  • 数据可视化之下发图实践
  • ​520就是要宠粉,你的心头书我买单
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • .htaccess配置常用技巧
  • .net FrameWork简介,数组,枚举
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .net程序集学习心得
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET项目中存在多个web.config文件时的加载顺序
  • .NET运行机制
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • []使用 Tortoise SVN 创建 Externals 外部引用目录