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 + '\'' +
    '}';
}

}

相关文章
|
7月前
|
机器学习/深度学习 存储 数据可视化
智能外呼产品推荐:瓴羊 Quick Service 如何重塑企业客户交互
瓴羊Quick Service是阿里云推出的智能外呼数字员工,基于通义大模型,具备复合意图识别(准确率93.2%)、情感感知、系统联动与业务闭环能力,支持电商催付、快递回访等场景自动执行,业务自动完成率达78%,已助力星巴克、伊利等企业提升转化与满意度。
|
7月前
|
人工智能 自然语言处理 架构师
AI Agent 职业路线全指南:从智能体普及浪潮到分层能力构建
2026年,“AI+”进入产业级落地期,智能体成为数字化转型核心基础设施。全球市场规模达2.3万亿,我国2027年普及率将超70%。人才缺口巨大,教育部已设“智能体技术应用”新专业。本文系统梳理四类职业路径(管理者、架构师、多智能体专家、垂直领域专家)及企业治理框架,助力职场人锚定定位、实战进阶。(239字)
1037 2
|
9月前
|
Dubbo Java 应用服务中间件
Feign远程调用
本章介绍Feign如何优雅替代RestTemplate实现HTTP跨服务调用。通过引入Feign,结合注解声明远程接口,避免服务地址硬编码,提升代码可读性与维护性,并支持自定义日志、编码等配置,实现高效、简洁的微服务通信方案。
|
9月前
|
运维 Java Nacos
Nacos配置中心
本章基于Nacos实现配置中心,解决微服务架构中配置管理难题。通过引入nacos-config依赖与bootstrap.yaml文件,实现应用启动时优先加载远程配置,动态获取userservice-dev.yaml等环境配置,支持热更新、集中化管理,提升系统可用性与运维效率。
|
10月前
|
Java 数据安全/隐私保护
分享一些Java面向对象的实际案例
Java面向对象案例通过校园管理和电商系统,展现封装、继承、多态的协同:封装保护数据,继承复用代码,多态实现灵活扩展,贴近实际应用,体现OOP核心思想。(238字)
465 0
|
12月前
|
SQL 监控 JavaScript
天啊,Gitee 16k star项目,不要再傻傻重复造轮子啦,高效搭建企业级后台系统框架,你不应该试一下吗?
Guns 是基于 Spring Boot3 + Vue3 的企业级后台框架,获 Gitee 16.2k Star。支持权限、多机构、代码生成、插件化扩展,助力高效搭建 OA、CRM、ERP 等系统,提升开发效率,降低重复造轮子成本。
545 5
|
前端开发 Java 网络架构
为什么Controller就报错404,而改为RestController就不报错了
为什么Controller就报错404,而改为RestController就不报错了
649 0
|
缓存 前端开发 rax
测试cache访问延迟背后的计算机原理
CPU的cache往往是分多级的金字塔模型,如何在多级cache中测试cache的延迟?
1930 2
测试cache访问延迟背后的计算机原理
|
开发框架 安全 .NET
Web安全-文件上传漏洞与WAF绕过
Web安全-文件上传漏洞与WAF绕过
1460 5