文章评论实体类的编写 | 学习笔记

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 快速学习 文章评论实体类的编写

开发者学堂课程【MongoDB精讲课程(上):文章评论实体类的编写学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/726/detail/12967


文章评论实体类的编写


内容介绍:

一、文章评论实体类的编写

 

一、文章评论实体类的编写

编写实体类,用 Java 映射 MongoDB,实体类必不可少。和关系数据库,比如 MySQL 是一模一样的。L 例如,MySQL 有一个 comment 评论表,一般情况下需要建实体类与它一一对应,同样,MongoDB 是一种松散的结构,就代表 comment 叫集合。comment 对应的数据类型可能有多种,也可能存在一个 comment 对应多个 Java 实体类,对于现在的业务,一个 comment 集合对应一个实体类的数据结构。

1.新建子包,存放实体类

创建包 cn.itcast.article,打开 idea,在 article 下边新建一个实体类,包下建包 po 用于存放实体类。

cn.itcast.article.po.comment

image.png

2.注解详解

将以下内容复制粘贴

这些字段实体的属性是 MongoDB 里面的字段是一一对应的。

Package cn.itcast.article.po;

Import org.springframework.data.annotation.Id;

Import org.springframework.data.mongodb.core.index.Indexed;

Import org.springframework.data.mongodb.core.mapping.Document;

Import org.springframework.data.mongodb.core.mapping.Field;

Import java.io.Serializable;

Import java.time.LocalDateTime;

Import java.util.date

/##

#文章评论实体类

#/

//把一个 Java 类声明为 mongodb 的文档,可以通过 collection 参数指定这个类对应的文档。

//@document(collection=mongodb 对应 collection 名”)

//若未加@document,该 bean save mongo comment collection

//若添加@document,则 save comment collection

@document(collection=comment)//可以省略,如果省略,则默认使用类名小写映射集合。

注解:首先要标明是一个 document,就是文档数据,现在存的数据,是用来接收文档数据的。

存完数据之后,需要指定 Collection comment,写数据时会往这个集合里面映射。还有一种情况是可以省略的,如果类名 comment 这个类型,全变成小写之后,正好和 MongoDB 里面的集合名一样,那是可以省略不写的。这种情况都是指向 comment的集合。

//复合索引

//@compoundindex(def={userid:1,nickname:-1})

Public class comment implement serializable{

//主键标识,该属性的值会自动对应mongodb的主键字段”_id”,如果该属性名就叫”id”,则该注解可以省略,否则必须写。

@id

Private string:id//主键

ID 的注解表示 ID 属性映射的是主键。也就是 MongoDB 自动生成的下划线 ID 主键。当字段的属性名就叫 ID 时,这个 ID 不写也可以。

@Field(content)

Private string content://吐槽内容

Private date publishtime://发布日期

如果说一些在普通属性值的映射,属性的名称和字段名称对应不上,也可以强制加@field 去指向 MongoDB 里面的字段。

//添加一个单字段的索引

@Indexed

Private string userid;//发布人 ID

Private string nickname;//昵称

Private localdatetime creatdatetime;//评论的日期时间

Private Integer likenum;//点赞数

Private Integer replynum;//回复数

Private string state;//状态

Private string parentid;//上级 Id

Private string nickname articleid

//Getter and setter.....

添加单字段的索引,代表添加了一个单字段的索引,注解既然可以添加单字段。也可以添加复合索引。

//复合索引

@compoundindex(def=(userid:1;nickname:-1’’))

它的写法先把类写出来,然后进行定义的复合索引。定义了两个字段的复合索引。例如 ruserid nickname,跟命令的写法是相同的,如果是升序跟上1,降序就跟上-1。通常情况下,可以像如上一样建,也可以用 MongoDB 命令行的方式建,最好用命令行的方式去建。如果在开发中,索引用命令行的方式去建也是非常好的一种选择,因为MongoDB 是一个松散的活动,现在插入的这个字段,有可能先建一个索引还没用。那个注解也可以实现,命令行也可以实现。具体根据项目进行选择。

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 publictime

}

Public void setpublishtime(datepublishtime) {

This publishtime=publishtime;

}

Public string getuserid() {

Return userid;

}

Public void setuserid(string userid)  {

This userid=userid

}

Public string getnickname() {

Return nickname;

}

Public void setnickname()  {

This.nickname=nickname;

}

Public localdatetime getcreatedatetime() {

Return 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() {

Returncomment{+

id=’” + id + /’’ +

,content=’” + content + /’’+

‘’,publishtime=’’’ + publishtime +

‘’,userid=’’’ + userid + /’’ +

‘’,nickname=’’’ + nickname + /’’ +

‘’,creatdatetime=’’’ + creatdatetime +

‘’,likenum=’’’ + likenum +

‘’,replynum=’’’ + replynum +

‘’,state=’’’ + state + /’’ +

‘’,parentid=’’’ + parentid + /’’ +

‘’,articleid=’’’ + articleid + /’’ +

}

}

}

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
Java 数据库
Springboot 根据数据库表自动生成实体类和Mapper,只需三步
Springboot 根据数据库表自动生成实体类和Mapper,只需三步
5024 1
Springboot 根据数据库表自动生成实体类和Mapper,只需三步
|
5月前
|
SQL Java 数据库连接
老程序员分享:JDBC工具类封装、封装DAO方法与数据库表实体类封装的使用案列详情
老程序员分享:JDBC工具类封装、封装DAO方法与数据库表实体类封装的使用案列详情
|
6月前
|
Java 数据库连接 数据库
spring+mybatis_编写一个简单的增删改查接口
spring+mybatis_编写一个简单的增删改查接口
55 2
|
XML Java 数据库连接
Mybatis自动生成增删改查代码
Mybatis自动生成增删改查代码
477 2
|
SQL Java 数据库连接
MyBatis完成增删改查案例(详细代码)
MyBatis完成增删改查案例(详细代码)
MyBatis完成增删改查案例(详细代码)
|
Java 数据库连接 mybatis
mybatis学习(4):工具类和实体类的创建
mybatis学习(4):工具类和实体类的创建
126 0
mybatis学习(4):工具类和实体类的创建
|
SQL Java 数据库连接
Mybatis注解开发和编写dao实现类的方式
Mybatis注解开发和编写dao实现类的方式
Mybatis注解开发和编写dao实现类的方式
|
Java 数据库连接 数据库
MyBatis的逆向工程工具,自动生成数据库对应的POJO实体类、mapper接口、增删改查mapper.xml文件
MyBatis的逆向工程工具,自动生成数据库对应的POJO实体类、mapper接口、增删改查mapper.xml文件
309 0
MyBatis的逆向工程工具,自动生成数据库对应的POJO实体类、mapper接口、增删改查mapper.xml文件
|
SQL Java 数据库连接
MyBatis根据表结构自动生成PO/Mapper代码的最佳实践
MyBatis根据表结构自动生成PO/Mapper代码的最佳实践
1209 0
MyBatis根据表结构自动生成PO/Mapper代码的最佳实践
|
SQL Java 数据库连接
mybatis增删改查代码案例
mybatis增删改查代码案例
95 0