許朕瑀,白云飛,朱艷
(東南大學 成賢學院,江蘇南京,210088)
古人云:“書中自有黃金屋,書中自有顏如玉。”書本作為知識的一種載體,是學生獲取信息的重要媒介[1]。在大學的校園中,許多學生為了能夠考取各類證書往往都會購買多種的輔導書,而這類輔導書一般在成功考取證書后被廢棄,造成資源浪費。如果一個學生購買輔導資料,新品往往價格會高一點,而二手書籍的價格更實惠,并且校內(nèi)會有大量的高年級學生可以提供這類二手書。這些二手書除了價格實惠外,還有一個好處,就是往往會有原書主的各類筆記、批注,能夠幫助新的書主更好的進行學習。因此,本項目設計開發(fā)一款基于Android 的校園易書APP,加速二手書籍的校園循環(huán)利用,使得二手書籍,從校園來,回到校園去。校園易書APP 開發(fā)工具基于Android Studio[2],開發(fā)語言主要基于Java,前端基于okhttp 框架組件,后端采用了Springboot+Mybatis+Mysql[3]整合框架。
Android Studio 是美國谷歌公司開發(fā)并推出的新的Android 開發(fā) 環(huán)境,Android Studio 是一款基于 IntelliJ IDEA[4]的開發(fā)環(huán)境,IDEA 是一款在全世界程序員口中和各類軟件公司心中最好的 JAVA 開發(fā)工具之一,其實質(zhì)是一款集成的開發(fā)環(huán)境。Android Studio 在 IDEA 的基礎上提供了其他的開發(fā)支持,比如包含了對 Gradle[5]的構建與支 持、能夠快速的修復和重新組合相關開發(fā)語句、支持 UI 控件并能 夠?qū)ο嚓P界面進行預查看等功能。Android Studio 的優(yōu)點十分明顯,其具備一個叫做優(yōu)化小貼士 的功能,它會給予開發(fā)者一些開發(fā)過程的優(yōu)化型建議,并伴隨翻 譯的功能,它可以使軟件開發(fā)人員在開發(fā)的內(nèi)容里進行翻譯,解 決了語言問題,使之更加普及化、全球化。Android Studio 同時還 具備很多不同尺寸的屏幕及分辨率,使得程序員在開發(fā)軟件時能 夠看到自己正在編寫的 APP 在不同分辨率及大小的屏幕下的展示 效果,以便做出及時的修正。
springboot 是spring[8]家族中的一個全新框架,用來簡化spring 程序的創(chuàng)建和開發(fā)過程。在以往我們通過SpringMVC[9]+Spring+Mybatis 框架進行開發(fā)的時候,我們需要配置web.xml,spring 配置,mybatis 配置,然后整合在一起,而springboot 拋棄了繁瑣的xml 配置過程,采用大量默認的配置來簡化我們的spring 開發(fā)過程。MyBatis 是一款優(yōu)秀的持久層框架,它支持定制化SQL、存儲過程以及高級映射,避免了幾乎所有的JDBC 代碼和手動設置參數(shù)以及獲取結果集。MyBatis 可以使用簡單的XML 或注解配置和映射原生信息,并將接口和Java 的POJO(Plain Old Java Objects,普通Java 對象)映射成數(shù)據(jù)庫中的記錄。MyBatis 作為操作數(shù)據(jù)庫的框架,Spring Boot 沒有提供MyBatis 場景依賴,但是MyBatis 開發(fā)團隊自己適配了Spring Boot,提供mybatis-spring-starter依賴啟動器實現(xiàn)數(shù)據(jù)訪問操作。進一步簡化了MyBatis 對數(shù)據(jù)的操作。MySQL 是一種關系型數(shù)據(jù)庫系統(tǒng),相比較其他數(shù)據(jù)庫系統(tǒng)而言,MySQL 是目前運行速度最快的數(shù)據(jù)庫系統(tǒng)之一。其優(yōu)勢在于源代碼開放,任何人都可以依據(jù)General PublicLicense,下載并根據(jù)個性化的需求對源代碼進行修改。大多數(shù)人都認為在不需要事務化處理的情況下,MySQL 是管理內(nèi)容最好的選擇,如圖1 所示。
圖1 Springboot+Mybatis+Mysql 系統(tǒng)架構
圖2 用戶用例圖
圖3 管理員用例圖
Java 是世界上使用最廣泛的編程語言之一種面向?qū)ο蟮姆植际秸Z言[6]。Java 最初由Sun Microsystems 在1990年代開發(fā),用于開發(fā)從Web 應用程序到移動應用程序到批處理應用程序的所有內(nèi)容。Java 最初是一種純粹的面向?qū)ο蟮恼Z言,但現(xiàn)在已經(jīng)發(fā)展成為一種多范例語言,可以高度適應任何情況。擁有龐大的開發(fā)人員社區(qū)和支持庫,Java 是開發(fā)幾乎所有類型的應用程序的理想選擇。
校園易書APP 的主要角色(參與者)有管理員、普通用戶,下面從管理員和用戶展開需求分析。
未注冊用戶可以通過該APP 進行注冊。注冊用戶登入后的主要功能包括圖書顯示、圖書推薦、書庫分類、綜合購買、用戶信息管理、積分系統(tǒng)、書籍上傳等。用戶用例圖如圖 2 所示。
管理員登入到后端系統(tǒng)后只要功能模塊有圖書查詢、圖書添加、圖書刪除、圖書修改等。管理員用例圖如圖 3 所示。
(1)前端功能設計,如圖4 所示。
圖4 前端功能模塊結構圖
(2)后端管理功能設計,如圖5 所示。
圖5 后端功能模塊結構圖
(1)登入注冊模塊:未注冊的用戶可進行注冊操作,注冊流程如圖6 所示。登入主要是用于管理員和用戶對自己賬號的登入使用,主要流程如圖7 所示。
圖6 注冊流程圖
圖7 登入流程圖
(2)上傳書籍功能模塊:用戶和管理員都可以進行書籍的上傳主要流程如圖8 所示。
圖8 上傳書籍流程圖
(3)購買書籍功能模塊:用戶可以通過購買系統(tǒng)達成購買圖書的目的,主要流程如圖9 所示。
圖9 購買書籍流程
圖10 數(shù)據(jù)庫E-R 圖
數(shù)據(jù)庫是整個軟件應用的根基,是軟件設計的起點,它起著決定性的質(zhì)變作用,一個好的數(shù)據(jù)庫可以關系到程序開發(fā)的優(yōu)劣,數(shù)據(jù)庫設計離不開表的設計以及之前的聯(lián)系。因此在設計數(shù)據(jù)庫的時候要多花時間考慮周全才能夠較好的完成。
(1) 數(shù)據(jù)庫E-R 圖設計
E-R 圖[7]也稱實體-聯(lián)系圖(Entity Relationship Diagram),提 供了表示實體類型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型。E-R 圖中的三個最為重要的元素分別為實體,屬性,關系。
(2)數(shù)據(jù)庫表設計
校園易書APP 采用的數(shù)據(jù)庫是Mysql 數(shù)據(jù)庫,其主要功能是存儲數(shù)據(jù),從而方便了管理數(shù)據(jù)的操作。
表結構建設如表格1~表格6 所示。
表1 t_admin管理員信息表
表2 t_user用戶信息表
表3 t_order訂單表
表4 t_book訂單表
表5 t_donate捐贈信息表
表6 t_record上傳記錄信息表
(1)注冊登入界面
登入界面如圖11 所示。用戶可以通過輸入自己的賬號密碼進行登入。此外在用戶沒有賬戶的情況下可以點擊注冊按鈕進入我們的注冊界面進行用戶注冊。注冊界面 第一欄是賬號的輸入:用戶可以自定義賬號。第二欄是密碼的輸入:用戶也可以自定義自己的密碼。第三欄是確認密碼。
圖11 注冊登入界面
(2)系統(tǒng)主界面
主界面如圖12 所示,分類界面如圖13 所示。用戶可以自行去滑動界面尋找自己想要的書籍亦或者是通過搜索和分類功能區(qū)快速搜尋想要購買的書籍。與此同時,主界面還伴有新書推薦、熱銷排行榜、智能推薦等功能??梢越o用戶帶來非常不錯的瀏覽體驗。
圖12 系統(tǒng)主界面
圖13 圖書分類界面
(3) 書籍上傳界面
如圖14 所示,該界面是本APP 的上傳圖書界面。最上層是上傳系統(tǒng)的一個名稱添加書籍。然后下面有個空白區(qū)域點擊可以觸發(fā)上傳圖片的一個事件。根據(jù)提示用戶可在書籍標題,書籍價格,購買積分,書籍介紹下方藍框中填入適當?shù)臅拘畔?。由于界面過長往下滑動會有一個上傳的按鈕。在填寫好對應的信息之后點擊上傳書籍這個按鈕就可以將書籍上傳成功。
圖14 上傳書籍界面
(4) 圖書購買界面
如圖15 所示,在挑選商品的時候可以將商品加入購物車,加入購物車后購物車里面呈現(xiàn)出來的是一個書籍列表我們可以選中全部從而進行統(tǒng)一購買。
圖15 綜合購買界面
后端的主要功能可以說成是數(shù)據(jù)的存儲和查詢。下面我們分別展開來介紹這兩個功能模塊。
(1)存儲功能
用戶上傳或捐贈的書籍都會儲存在數(shù)據(jù)庫中并且會在后端對應的表中展現(xiàn)出來也會被記錄保留下來,購買記錄以及訂單同樣也是如此,此功能如圖16 所示。
圖16 存儲功能界面
(2)查詢功能
管理員可以通過輸入書本名稱的方式來模糊查詢?nèi)ふ覕?shù)據(jù)庫中已經(jīng)被存入的書籍從而可以清楚的了解此書的詳細信息等并且方便對其加以管理。此功能具體如圖17 所示。
圖17 查詢功能界面
在做手機APP 開發(fā)期間問題多多,比如沒有環(huán)境,沒有足夠的經(jīng)驗。面對這些問題我們團隊就心里想一定要解決這些問題,把成果拿出來。對于當時遇到的問題,我們都會認真分析,針對某個問題,都會預定出一個解決方案。其實開發(fā)的重點,主要是解決問題的能力,遇到問題要分析清楚試圖找到最優(yōu)的解決方案。對于我們的成果我們想說的是:校園易書APP 是我們優(yōu)良團隊精心研發(fā)的一款圖書交易APP??梢詽M足用戶的要求和需求。功能齊全運行良好,操作簡單值得推廣。