开发者学堂课程【MongoDB精讲课程(上):文章评论的基本增删改查】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/726/detail/12968
文章评论的基本增删改查
内容介绍
一、增删改查
一、增删改查
建造完实体类之后,需要完成基本的增删改查,完成基本的增删改查需要建立 Dao 和 service,所以分别建立包和类。在 Dao 中要建立评论,叫 comments Repository。comment repository 继承于现成的 Mongo repository, mongo repository 中有2个泛型需要指定,分别是泛型实体类和 ID 类型。此时实体类是 comment, ID 是 string型,此时不能建为 Class,需要将 Class 改为 interface。接下来在 service 中使用 DAO,在 service 中建立 comment service,需要在 service 上建立注解。首先注入 DAO 对象。此时只有接口,没有实现类。对象是动态代理生成的对象,生成的动态代理对象就是 simple mongo repository,这个动态代理对象仅做了解,不用过多深入。获取到comment repository 就可以直接使用。使用就是一系列调用,调用其提供的一系列方法。增删改查代码从参考文档中复制之后需要导入包,导入完包之后就是一系列增删改查方法。增删改查方法调用的是继承父类的方法,例如 Delete by ID、find all、find by ID。 Service 没有做任何操作,只是调用了 DAO 方法。查看调用是否生效,需要使用 test测试。 Test 使用的包与 service 一致,命名规则较为简单,例如新建一个 Class,Class 使用的包要保持和 service 一致。较为好区分,也较为规范。类名就是 commentservice test,是标准写法。书写完测试类之后,需要使用 Spring boot 的起步依赖,已经加上框架,直接使用即可。代码如下:
@RunWith(SpringRunner.class)
@SpringBootTest
public c1ass CommentServiceTest {
}
Runwith 中使用上 Springrunner Class,都是标准写法,加上 SpringBootTest 即可,SpringBootTest 可以不指定,不指定也能够被找到。
测试需要注入 comment service。先将 service 注入,再运行代码进行测试。需要写查询的测试方法,方法从comment service 中复制。通常情况下可以在开头加上 test。代码如下:
public c1ass CommentServiceTest {
@Autowired
private CommentService commentService;
@Test
public void testFindCommentList() {l
List<Comment> commentList = commentService.f indCommentList ()
;
System. out.println(commentList;
}
}
测试结果左边部分是绿色,就代表测试没有问题。
打印数据较多,不便于观察,因此测试单个数据代码如下:
public void testFindCommentById() {
Comment commentById= commentService.findCommentById("1");
System. out. println(commentById);
}
}
单个数据代码测试就是 FindCommentById。现在 comment 中有5条数据。可以随意挑选一条数据进行查询。测试保存的方法同上。先新建一个对象,新建对象之后,可以把数据set一遍。用对象调用方法,ID 可以不用写,代码如下:
public void testsaveComment(i
Comment comment=new Comment
();
comment.setArticleid( "100000");
comment.setContent("
测试添加的数据");
comment.setCreatedatetime(Loca1DateTime.now());
comment.setUserid( "1003");
comment.setNickname("
凯撒大帝");comment.setstate( "1");
comment.setLikenum(0);
comment.setReplynum(0) ;
commentService.s aveComment(comment);
}
测试插入。插入如果不指定 ID,mongo DB 会帮助用户自动生成 object ID。首先查看控制台,原来控制台有5条数据,是原使用命令行插入的数据。将插入数据代码运行,使用 Campus 刷新之后,有6条数据。插入数据代码如下:
pub1ic void testSaveComment (){
Comment comment=new Comment () ;
comment.setArticleid("100000") ;
comnent. setContent ("
测试添加的裁据");
comtnent.setCreatedatetime(LocalDateTime.now()) ;
comment.setUserid("1003") :
comment. setNi ckname("
凯撒大帝");
comment. setState("1");
comnent. setLikenum(0) ;
comnent. setRep1ynum(0) ;
commentService.saveComment (comment) :
}
}
此时用户没有指定 object ID。 Mongo DB 会自动生成一个 ID,类似于 UUID 的串,以上就是使用 Java 操作 mongo DB 的基本增删改查的内容介绍。