java-后端博客系统文章系统No6

工具

  • IDE为idea16
  • JDK环境为1.8
  • gradle构建,版本:2.14.1
  • Mysql版本为5.5.27
  • Tomcat版本为7.0.52
  • 流程图绘制(xmind)
  • 建模剖析软件PowerDesigner16.5
  • 数据库工具MySQLWorkBench,版本:6.3.7build

本期指标

  • mybatis一些简略的进阶应用
  • 日志性能的记录
  • 文章公布
  • 草稿保留

上期咱们通过对数据库的剖析,仔仔细细的摸索了一遍WordPress程序运行时候文章提交和草稿提交的区别和共同点,简略的概括下如下:

  • 文章和草稿区别是postType不同
  • 文章和草稿都有日志记录
  • 日志的postStatus都是closed
  • 日志的postParent始终是指向其文章的id

···

更为具体的文章,倡议去我的上一篇文章查看。

既然咱们曾经大略明确了怎么去实现,那么当初咱们须要的就是进行试验。

首先老规矩,先从咱们的dao层实现开始,咱们争取把各个功能模块解耦,那么咱们就不能过于在dao层限度,所以咱们须要在dao层实现数据(文章、草稿、历史记录)插入。所以咱们学生成dao接口如下:

下面的语句中咱们能够看到在mapper的insert语句块中咱们插入了selectKey语句块,次要是用来返回咱们插入的条目标自增id。为什么这里咱们非要获取到插入的id呢?次要是文章生成后的日志记录都是须要文章id能力生成对应的日志记录。

同时在inset语句块中,咱们应用了choose+when语句块生成了动静sql,这样就能动静的抉择程序执行。

同时在下面的代码中咱们能够看到下面的when和上面的when语句块中对于bean的属性获取应用形式不一样!

重点:扩大类型,要应用父类的属性时,必须是对象名.属性名的模式,对象名从dao的接口设置。(否则间接应用属性的时候,会异样提醒空指针,且提醒对象的属性中没有该属性)

小技巧:

1.在mapper中应用属性时,最好是对象名.属性名的形式,同时在dao层中设置对象的名称(在咱们下面dao层的add接口中有阐明)

2.mybatis的动静sql能够缩小很多额定的办法和mapper中的sql编写,所以必须把握动静sql

3.当属性较多的时候,咱们肯定不能遗记单元测试,单元测试能够简略直观的理解到哪里出错,缩小在后续开发中谬误查看的工夫。

下面咱们也是提到过单元测试,那么咱们当初看看这个dao的单元测试应该如何实现呢?

首先给大家看看咱们文章的bean:

说实话,一看到这里的时候,我也很惆怅。眉头一皱;计上心来,感觉能够祭出这个系列教程咱们本人手写的第一个设计模式了!开启咱们的javaBean的建造者模式。

那么咱们ben生成好了后,咱们就须要开始写咱们的单元测试,如下:

大家能够看到下面咱们的PostCustom还是从咱们本人手动封装的PostInitUtils中获取的,同时咱们的PostCustom还是咱们的PostBean的子类。所以这里就用到了传说中的pojo包装类型相干的一些常识(咱们这里并没有包装,不过曾经用到了扩大类),让咱们接着看看PostInitUtils的代码:

这里咱们能够看到咱们对外开放的外围也就文章外围信息相干的一些货色了,那么这样咱们就能很好的控制数据。

当初咱们能够看下数据库,最新多进去的数据和文章首页插入的数据如下:

咱们明天的骨干内容到此根本实现,剩下的从dao到前台界面适配等等基本上骚年们本人都能够实现至此不在赘述。

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据