ongoDB实战演练

简介: 本项目实现头条文章评论功能,基于SpringDataMongoDB操作MongoDB数据库,支持评论的增删改查、按文章ID查询及点赞功能。构建article微服务模块,设计Comment实体类,封装评论信息,集成mongodb-driver驱动,完成持久化操作。

需求分析
某头条的文章评论业务如下:
需要实现以下功能:
1)基本增删改查API
2)根据文章id查询评论
3)评论点赞
5.2 表结构分析
数据库:articledb
5.3 技术选型
5.3.1 mongodb-driver(了解)
mongodb-driver是mongo官方推出的java连接mongoDB的驱动包,相当于JDBC驱动。我们通过一个入门的案例来了解mongodb-driver的基本使用。
官方驱动说明和下载:链接 ,官方驱动示例文档:链接。
5.3.2 SpringDataMongoDB
SpringData家族成员之一,用于操作MongoDB的持久层框架,封装了底层的mongodb-driver。
官网主页: https://projects.spring.io/spring-data-mongodb/
5.4 文章微服务模块搭建
(1)搭建项目工程article,pom.xml引入依赖:
(2)创建application.yml
(3)创建启动类
cn.itcast.article.ArticleApplication
(4)启动项目,看是否能正常启动,控制台没有错误。
5.5 文章评论实体类的编写
创建实体类 创建包cn.itcast.article,包下建包po用于存放实体类,创建实体类
cn.itcast.article.po.Comment
Java
运行代码
复制代码
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package cn.itcast.article.po;
private String articleid;
//getter and setter.....
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getPublishtime() {
return publishtime;
}
public void setPublishtime(Date publishtime) {
this.publishtime = publishtime;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public LocalDateTime getCreatedatetime() {
return createdatetime;
}
public void setCreatedatetime(LocalDateTime createdatetime) {
this.createdatetime = createdatetime;
}
public Integer getLikenum() {
return likenum;
}
public void setLikenum(Integer likenum) {
this.likenum = likenum;
}
public Integer getReplynum() {
return replynum;
}
public void setReplynum(Integer replynum) {
this.replynum = replynum;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getParentid() {
return parentid;
}
public void setParentid(String parentid) {
this.parentid = parentid;
}
public String getArticleid() {
return articleid;
}
public void setArticleid(String articleid) {
this.articleid = articleid;
}

@Override
public String toString() {
    return "Comment{" +
    "id='" + id + '\'' +
    ", content='" + content + '\'' +
    ", publishtime=" + publishtime +
    ", userid='" + userid + '\'' +
    ", nickname='" + nickname + '\'' +
    ", createdatetime=" + createdatetime +
    ", likenum=" + likenum +
    ", replynum=" + replynum +
    ", state='" + state + '\'' +
    ", parentid='" + parentid + '\'' +
    ", articleid='" + articleid + '\'' +
    '}';
}

}

相关文章
|
9月前
|
存储 安全 大数据
Python 开发必备:tempfile 模块深度解析
Python的`tempfile`模块可自动创建并清理临时文件和目录,适用于处理大数据、生成报告或单元测试等场景。无需手动删除,避免命名冲突,提升代码安全与简洁性。
506 5
Python 开发必备:tempfile 模块深度解析
|
7月前
|
存储 人工智能 专有云
中智集团接入飞天企业版,行业云成果入选国资委AI标杆!
近日,中智集团接入阿里云飞天企业版打造的“中智行业云”成功入选国务院国资委首批“AI战略性高价值场景”。同时,该成果凭借先进的技术架构与场景赋能价值,还获评中国信息通信研究院“面向AI的智能化专有云底座”创新应用实践,成为AI与云计算在人力资源领域的标杆应用。
480 0
|
11月前
|
存储 数据采集 算法
RFID究竟是如何实现快速盘点?
RFID技术通过非接触式批量识别,大幅提升盘点效率。它利用射频信号自动读取多个标签信息,无需人工逐个操作,广泛应用于仓库、零售、资产等领域的高效数据采集。
|
6月前
|
弹性计算 人工智能 Linux
2026年阿里云的活动有哪些?云服务器特惠、优惠券等不同种类活动主要优惠内容参考
2026年阿里云推出多个不同类型的活动:云资源产品直降,轻量应用服务器低至38元/年;“99计划”提供经济型e实例和通用算力型u1实例,分别为99元/年和199元/年,且新购续费同价;弹性计算爆款直降活动覆盖多规格实例,企业用户可享高端实例折扣;企业上云扶持计划为初创企业提供高额抵扣金和技术支持。用户可根据需求、场景和预算选择合适活动。
|
7月前
|
人工智能 搜索推荐 API
智能体来了:从0-1开启你的AI分身时代
内容摘要:AI智能体(Agent)正从概念走向大规模应用,宣告了个体效率飞跃的“AI分身时代”至。本文深度拆解智能体底层逻辑,手把手教你如何利用Coze、Dify等平台构建具备感知、规划与执行能力的AI分身,助你实现从基础自动化到全时生产力的转型。
1211 3
|
7月前
|
域名解析 弹性计算 安全
2026年阿里云服务器使用全教程:从配置选型到 WordPress 网站搭建
阿里云服务器(含 ECS 与轻量应用服务器)的使用需遵循 “选型 - 环境配置 - 应用部署 - 上线验证” 的核心流程,不同用户可根据技术基础与业务需求选择适配方案。本文以搭建 WordPress 博客为例,结合官方标准操作与实操细节,详解从服务器配置选择到网站上线的完整步骤,同时补充轻量与 ECS 的差异及远程连接、安全配置等关键要点,帮助用户高效上手。
|
8月前
|
运维 Java Nacos
Nacos配置中心
本章基于Nacos实现配置中心,解决微服务架构中配置管理难题。通过引入nacos-config依赖与bootstrap.yaml文件,实现应用启动时优先加载远程配置,动态获取userservice-dev.yaml等环境配置,支持热更新、集中化管理,提升系统可用性与运维效率。
|
8月前
|
Dubbo Java 应用服务中间件
Feign远程调用
本章介绍Feign如何优雅替代RestTemplate实现HTTP跨服务调用。通过引入Feign,结合注解声明远程接口,避免服务地址硬编码,提升代码可读性与维护性,并支持自定义日志、编码等配置,实现高效、简洁的微服务通信方案。
|
8月前
|
NoSQL 关系型数据库 MySQL
MySQL 并发控制核心原理与实践技巧
本文深入解析MySQL高并发场景下的数据一致性难题,涵盖事务隔离级别、锁机制与乐观锁原理,结合电商秒杀、订单重复等真实案例,提供隔离级别选择、悲观锁/乐观锁应用及Redis分流等实战策略,助力开发者平衡性能与一致性。

热门文章

最新文章