上篇博客咱們聊了《JavaEE開發之SpringBoot整合MyBatis以及Thymeleaf模板引擎》,而且在以前咱們也聊了《Swift3.0服務端開發(五) 記事本的開發(iOS端+服務端)》,在以前的案例中的服務端是咱們使用了Swift3.0下的Perfect框架來實現的,本篇博客咱們就用Spring Boot來作服務端,而iOS端咱們不用改動。html
在後端實現時,路由以及數據格式咱們都採用以前的規則,可是咱們要用Spring Boot來作。固然操做數據庫時,咱們就使用MyBatis來進行數據的持久化了。本篇咱們就來看一下這個Spring Boot完整的工程。固然,本篇博客所設計的Spring Boot是比較簡單的,可是用來練手能夠了。git
本篇博客所涉及的功能無非就是一些數據庫表的CURD操做,沒有什麼多難的地方。接下來就來總體的看一下這個工程。github
1、運行效果展現數據庫
下方這個Gif效果圖,就是咱們本篇博客所涉及的完整案例的運行效果。單從下方的效果,咱們看不出與以前有什麼效果,由於咱們的iOS端沒有改變。可是下方App的後臺確實是使用Spring Boot來實現的。後端
第一個頁面讓用戶輸入用戶名,若是用戶名存在,那麼就讓用戶輸入密碼進行登陸,若是不存在就讓用戶進行註冊。登陸或者註冊後直接進入App的首頁,也就是筆記的列表頁面。該列表頁顯示了當前用戶發佈的全部筆記,包括筆記的Title和建立時間。點進去是該筆記的詳情頁面,能夠對其更改操做。在列表的右上角有一個添加按鈕,能夠用來添加新的筆記。app
在列表頁中,左滑單元格,會出現刪除按鈕,點擊刪除按鈕,則對該篇筆記進行刪除操做。具體運行效果以下所示。框架
2、MyBatis的Mapper實現post
關於Spring Boot中如何引入和配置MyBatis,在此就不作過多贅述了,你能夠參見上篇博客。固然,上述Demo的核心操做就是數據庫的CURD操做,固然,咱們使用的是Spring Boot下的Mybatis來進行的數據持久化,因此MyBatis的使用是比較重要的。本部分就詳細的聊一下本篇博客所涉及的MyBatis的Mapper。下方先給出操做用戶user表的Mapper, 而後在介紹操做內容content表的Mapper。url
1. UserMapper的實現spa
下方代碼段是UserMappper的具體實現,首先使用@Mapper註解將UserMapper接口聲明爲MyBatis的Mapper。而後在其中給出相應的操做聲明。在UserMapper中主要給出了兩個Select操做和一個Insert操做。
在執行Select時,使用了#{參數}來往SQL語句中傳入相應的查詢條件,使用了@Results()註解來聲明表字段與數據Model的屬性間的對應關係。若是沒有指定,那麼默認狀況下表字段名就等於Model的屬性名。查詢語句返回的是含有相應Model的ArrayList。
咱們使用@Insert()註解來指定插入語句,而且使用@Param註解和#{}來綁定參數。具體以下所示。
二、INoteContentMapper的實現
看完UserMapper後,咱們來看一下INoteContentMapper的具體實現。INoteContentMapper就負責操做Content表。下方截圖是INoteContentMapper具體實現,其中多了兩個操做,一個是使用@Delete註解聲明的刪除操做,另外一個是使用@Update註解聲明的更新操做。下方的實現也是比較簡單的在此就不作過多贅述了。
3、DAO層的建立
看完相關的Mapper接下來咱們來看一下DAO層的實現,DAO即Data Access Object,主要是負責操做對象的。咱們就以ContentDao爲例。下方代碼段就是ContentDao中的具體實現。在該類中被注入了INoteContentMapper類型的對象,咱們可使用該對象來操做數據庫。
咱們就以queryContent(String contentId)爲例,該方法中就調用了相應Mapper對象的相應方法,根據內容的id來查詢相應的內容。而該類中的方法,在獲取到相應的對象信息後,對該對象進行了相關操做,並返回。具體代碼以下所示。
4、Controller層的實現
DAO層實現完畢後,接下來咱們就來實現咱們的Controller層。固然,咱們仍是以Content的Controller層爲例。由於咱們的Controller是做爲接口也就是API對外使用的,因此咱們將ContentRestController使用@RestController進行註解,這樣咱們之間將返回的報文內容進行返回便可。下方代碼片斷就是咱們的ContentRestController中的實現內容。
首先咱們要注入ContentDao的對象,而後在相應的路由所對應的方法中來調用DAO中的相應的方法。雖然咱們返回的是Map類型,可是Spring Boot會爲咱們自動的轉換成Json格式的數據,因此訪問該API返回的都是JSON格式的數據。
咱們能夠對「/contentList」路由進行訪問,該路由須要提供一個userId做爲查詢參數,下方截圖就是對userId=1的用戶下的全部List進行的查詢。
今天博客就先介紹到這兒吧,下方是本篇博客所涉及Demo的源碼分享連接。
github分享連接:https://github.com/lizelu/SpringBootProject