上期咱們經過對數據庫的分析,仔仔細細的探索了一遍WordPress程序運行時候文章提交和草稿提交的區別和共同點,簡略的歸納下以下:html
···java
更爲詳細的文章,建議去個人上一篇文章查看。sql
既然咱們已經大概明白了怎麼去實現,那麼如今咱們須要的就是進行實驗。數據庫
首先老規矩,先從咱們的dao層實現開始,咱們爭取把各個功能模塊解耦,那麼咱們就不能過於在dao層限制,因此咱們須要在dao層實現數據(文章、草稿、歷史記錄)插入。因此咱們先生成dao接口以下:設計模式
上面的語句中咱們能夠看到在mapper的insert語句塊中咱們插入了selectKey語句塊,主要是用來返回咱們插入的條目的自增id。爲何這裏咱們非要獲取到插入的id呢?主要是文章生成後的日誌記錄都是須要文章id才能生成對應的日誌記錄。mybatis
同時在inset語句塊中,咱們使用了choose+when語句塊生成了動態sql,這樣就能動態的選擇程序執行。app
同時在上面的代碼中咱們能夠看到上面的when和下面的when語句塊中關於bean的屬性獲取使用方式不同!ide
重點:擴展類型,要使用父類的屬性時,必須是對象名.屬性名的形式,對象名從dao的接口設置。(不然直接使用屬性的時候,會異常提示空指針,且提示對象的屬性中沒有該屬性)工具
1.在mapper中使用屬性時,最好是對象名.屬性名的方式,同時在dao層中設置對象的名稱(在咱們上面dao層的add接口中有說明)post
2.mybatis的動態sql能夠減小不少額外的方法和mapper中的sql編寫,因此必須掌握動態sql
3.當屬性較多的時候,咱們必定不能忘記單元測試,單元測試能夠簡單直觀的瞭解到哪裏出錯,減小在後續開發中錯誤檢查的時間。
上面咱們也是提到過單元測試,那麼咱們如今看看這個dao的單元測試應該如何完成呢?
首先給你們看看咱們文章的bean:
說實話,一看到這裏的時候,我也很惆悵。靈機一動,感受能夠祭出這個系列教程咱們本身手寫的第一個設計模式了!開啓咱們的javaBean的建造者模式。
那麼咱們ben生成好了後,咱們就須要開始寫咱們的單元測試,以下:
你們能夠看到上面咱們的PostCustom仍是從咱們本身手動封裝的PostInitUtils中獲取的,同時咱們的PostCustom仍是咱們的PostBean的子類。因此這裏就用到了傳說中的pojo包裝類型相關的一些知識(咱們這裏並無包裝,不過已經用到了擴展類),讓咱們接着看看PostInitUtils的代碼:
這裏咱們能夠看到咱們對外開放的核心也就文章核心信息相關的一些東西了,那麼這樣咱們就能很好的控制數據。
如今咱們能夠看下數據庫,最新多出來的數據和文章首頁插入的數據以下:
咱們今天的主幹內容到此基本完成,剩下的從dao到前臺界面適配等等基本上騷年們本身均可以完成至此不在贅述。