IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> SpringBoot整合MongoDB完成CRUD操作(超详细) -> 正文阅读

[大数据]SpringBoot整合MongoDB完成CRUD操作(超详细)

官方文档:https://www.mongodb.com/docs/manual/reference/connection-string/

01.导入依赖

  		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
            <version>2.2.6.RELEASE</version> <!--2.2.6.RELEASE也是这里的springboot版本-->
        </dependency> 

02.添加配置

# spring.data.mongodb.uri=mongodb://用户名:密码@IP:端口/数据库?authSource=admin
spring.data.mongodb.uri=mongodb://root:admin@192.168.10.102:27017/demo?authSource=admin

#上面配置可写为以下配置
#spring.data.mongodb.database=demo
#spring.data.mongodb.host=192.168.10.102
#spring.data.mongodb.port=27017
#spring.data.mongodb.username=root
#spring.data.mongodb.password=admin
#spring.data.mongodb.authentication-database=admin

03.MongoDB的CRUD操作

用户类

@Data
@Document("User")
@AllArgsConstructor
public class User {
    @Id
    private Long id;
    private String name;
    private Date birthday;
    private int sex;
}

3.1插入

  • public T insert(T objectToSave):新增
 	@Autowired
    private MongoTemplate mongoTemplate;
    @GetMapping("/test1")
    public void insertDemo(){
         mongoTemplate.insert(new User(1314L,"zzj&mhz&wyq",new Date(),1));
    }

执行结果

在这里插入图片描述

3.2查询

数据

在这里插入图片描述

常用API

  • public List findAll(Class entityClass) : 查询User文档的全部数据
  • public T findById(Object id, Class entityClass): 查询User文档id为id的数据
  • public List find(Query query, Class entityClass) : 根据query内的查询条件查询
	@Autowired
    private MongoTemplate mongoTemplate;

	@GetMapping("/test2")
    public void queryDemo(){
        System.out.println("=============查询所有====================");
        List<User> all = mongoTemplate.findAll(User.class);
        all.forEach(System.out::println);//方法引用
        System.out.println();
        
        System.out.println("===============根据id查询=======================");
        User user = mongoTemplate.findById(1314, User.class);
        System.out.println(user);
        System.out.println();
        
        System.out.println("===============条件查询=======================");
        //regex传正则表达式  查询sex为1并且name中包含zzj的用户
        String name="zzj";
        Pattern pattern = Pattern.compile(String.format("%s%s%s", "^.*", name, ".*$"),Pattern.CASE_INSENSITIVE);
        Query query = new Query(Criteria.where("sex").is(1).and("name").regex(pattern));
        List<User> users = mongoTemplate.find(query, User.class);
        users.forEach(System.out::println);
        System.out.println();
        
        System.out.println("===============分页查询=======================");
        int pageSize=2,currentPage=1;
        long count = mongoTemplate.count(new Query(), User.class);
        List<User> userList = mongoTemplate.find(new Query().skip((currentPage - 1) * pageSize).limit(pageSize), User.class);
        System.out.println("记录数 = "+count);
        userList.forEach(System.out::println);
    }

执行结果

=============查询所有====================
User(id=1314, name=zzj&mhz&wyq, birthday=Sun May 22 22:37:14 CST 2022, sex=1)
User(id=6666, name=zzj, birthday=Sun May 22 22:37:15 CST 2022, sex=0)
User(id=8888, name=mhz, birthday=Sun May 22 22:37:15 CST 2022, sex=1)
User(id=9999, name=mhzzj, birthday=Sun May 22 22:37:15 CST 2022, sex=1)

===============根据id查询=======================
User(id=1314, name=zzj&mhz&wyq, birthday=Sun May 22 22:37:14 CST 2022, sex=1)

===============条件查询=======================
User(id=1314, name=zzj&mhz&wyq, birthday=Sun May 22 22:37:14 CST 2022, sex=1)
User(id=9999, name=mhzzj, birthday=Sun May 22 22:37:15 CST 2022, sex=1)

===============分页查询=======================
记录数 = 4
User(id=1314, name=zzj&mhz&wyq, birthday=Sun May 22 22:37:14 CST 2022, sex=1)
User(id=6666, name=zzj, birthday=Sun May 22 22:37:15 CST 2022, sex=0)

3.3修改

  • public UpdateResult upsert(Query query, Update update, Class<?> entityClass):修改
	@Autowired
    private MongoTemplate mongoTemplate;
    
	@GetMapping("/test3")
    public void updateDemo(){
        Query query = new Query(Criteria.where("_id").is(1314));
        Update update=new Update();
        update.set("name","wyq&mhz&zzj&zdn");
        mongoTemplate.upsert(query,update,User.class);
    }

执行结果

在这里插入图片描述

3.4删除

  • public DeleteResult remove(Query query, Class<?> entityClass):删除
	@Autowired
    private MongoTemplate mongoTemplate;
    
	@GetMapping("/test4")
    public void deleteDemo(){
        Query query = new Query(Criteria.where("_id").is(6666));
        mongoTemplate.remove(query,User.class);
    }

执行结果

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:15:37  更:2022-05-24 18:17:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:23:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码