JavaEE開發之記事本完整案例(SpringBoot + iOS端)


上篇博客我們聊了《JavaEE開發之SpringBoot整合MyBatis以及Thymeleaf模板引擎》,並且在之前我們也聊了《Swift3.0服務端開發(五) 記事本的開發(iOS端+服務端)》,在之前的案例中的服務端是我們使用了Swift3.0下的Perfect框架來實現的,本篇博客我們就用Spring Boot來做服務端,而iOS端我們不用改動。

在后端實現時,路由以及數據格式我們都采用之前的規則,但是我們要用Spring Boot來做。當然操作數據庫時,我們就使用MyBatis來進行數據的持久化了。本篇我們就來看一下這個Spring Boot完整的工程。當然,本篇博客所設計的Spring Boot是比較簡單的,但是用來練手可以了。

本篇博客所涉及的功能無非就是一些數據庫表的CURD操作,沒有什么多難的地方。接下來就來整體的看一下這個工程。

 

一、運行效果展示

下方這個Gif效果圖,就是我們本篇博客所涉及的完整案例的運行效果。單從下方的效果,我們看不出與之前有什么效果,因為我們的iOS端沒有改變。但是下方App的后台確實是使用Spring Boot來實現的。

第一個頁面讓用戶輸入用戶名,如果用戶名存在,那么就讓用戶輸入密碼進行登錄,如果不存在就讓用戶進行注冊。登錄或者注冊后直接進入App的首頁,也就是筆記的列表頁面。該列表頁顯示了當前用戶發布的所有筆記,包括筆記的Title和創建時間。點進去是該筆記的詳情頁面,可以對其更改操作。在列表的右上角有一個添加按鈕,可以用來添加新的筆記。

在列表頁中,左滑單元格,會出現刪除按鈕,點擊刪除按鈕,則對該篇筆記進行刪除操作。具體運行效果如下所示。

  

 

 

二、MyBatis的Mapper實現

關於Spring Boot中如何引入和配置MyBatis,在此就不做過多贅述了,你可以參見上篇博客。當然,上述Demo的核心操作就是數據庫的CURD操作,當然,我們使用的是Spring Boot下的Mybatis來進行的數據持久化,所以MyBatis的使用是比較重要的。本部分就詳細的聊一下本篇博客所涉及的MyBatis的Mapper。下方先給出操作用戶user表的Mapper, 然后在介紹操作內容content表的Mapper。

 

1. UserMapper的實現

下方代碼段是UserMappper的具體實現,首先使用@Mapper注解將UserMapper接口聲明為MyBatisMapper。然后在其中給出相應的操作聲明。在UserMapper中主要給出了兩個Select操作和一個Insert操作。

在執行Select時,使用了#{參數}來往SQL語句中傳入相應的查詢條件,使用了@Results()注解來聲明表字段與數據Model的屬性間的對應關系。如果沒有指定,那么默認情況下表字段名就等於Model的屬性名。查詢語句返回的是含有相應Model的ArrayList

我們使用@Insert()注解來指定插入語句,並且使用@Param注解和#{}來綁定參數。具體如下所示。

  

 

2、INoteContentMapper的實現

看完UserMapper后,我們來看一下INoteContentMapper的具體實現。INoteContentMapper就負責操作Content表。下方截圖是INoteContentMapper具體實現,其中多了兩個操作,一個是使用@Delete注解聲明的刪除操作,另一個是使用@Update注解聲明的更新操作。下方的實現也是比較簡單的在此就不做過多贅述了。

  

 

 

三、DAO層的創建

看完相關的Mapper接下來我們來看一下DAO層的實現,DAO即Data Access Object,主要是負責操作對象的。我們就以ContentDao為例。下方代碼段就是ContentDao中的具體實現。在該類中被注入了INoteContentMapper類型的對象,我們可以使用該對象來操作數據庫。

我們就以queryContent(String contentId)為例,該方法中就調用了相應Mapper對象的相應方法,根據內容的id來查詢相應的內容。而該類中的方法,在獲取到相應的對象信息后,對該對象進行了相關操作,並返回。具體代碼如下所示。

  

 

 

四、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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM