新聞釋出系統設計的過程
需求分析和設計階段
首先分析功能需求:有四個子產品(使用者管理子產品、新聞類别管理子產品、新聞釋出管理子產品前台類别展示子產品)。
然後進行系統架構設計:有四個架構(持久對象層、資料通路層、業務邏輯層、web表現層)
資料分析與設計階段
通過需求分析,确定對象實體四個:角色、使用者、新聞類别、新聞。與之對應有四張表(角色表、使用者表、新聞類别、新聞表),設定好表的主鍵和外鍵。
最後用MySQL把資料庫建立起來。
系統功能實作第一階段——實作使用者管理
首先做好開發環境和架構搭建。建立項目和引入包-編寫配置檔案-建立項目相關檔案和引入檔案資源。
接着做好使用者管理子產品。建立持久化類(role+user)-實作DAO(接口+映射檔案)-實作service(接口+實作類)-實作controller(user)+實作頁面功能(login+user_list+add_user+edit_user)
最後運作,測試登入和使用者管理。
系統功能實作第二階段——實作新聞管理
建立持久類(category+blog)+分頁管理(utils.pagebean)-實作DAO-實作service-實作controller+頁面功能(blog_list+add_blog+edit_blog)。
最後測試。
系統功能實作第三階段——實作登入驗證
建立攔截器類loginInterceptor-在springmvc-config.xml中配置攔截器
最後測試。
部落格系統設計的思路:改資料庫;改代碼;改界面;詳情如下
改資料庫階段:
角色表(t_role)
字段名 | 類型 | 長度 | 字段說明 | 備注 |
roleId | int | 32 | 角色ID | 主鍵 |
roleName | Varchar | 20 | 角色名稱 |
使用者表(t_user)
字段名 | 類型 | 長度 | 字段說明 | 備注 |
userId | int | 32 | 使用者ID | 主鍵 |
userName | varchar | 20 | 使用者姓名 | |
loginName | varchar | 20 | 登入賬戶 | |
password | varchar | 20 | 登入密碼 | |
roleId | int | 32 | 角色ID | 外鍵 |
tel | varchar | 50 | 聯系電話 | |
registerTime | datatime | 注冊時間 | ||
status | char | 1 | 注冊狀态 | 1:未啟用;2,3 |
部落格類别表(t_category)
字段名 | 類别 | 長度 | 字段說明 | 備注 |
categoryId | int | 32 | 類别ID | 主鍵 |
categoryName | varchar | 20 | 類别名稱 |
部落格表(t_blog)
字段名 | 類别 | 長度 | 字段說明 | 備注 |
blogId | int | 32 | 類别ID | 主鍵 |
title | varchar | 60 | 資訊标題 | |
contentTitle | varchar | 120 | 資訊内容标題 | |
titlePicUrl | varchar | 120 | 标題圖(路徑) | |
content | text | 資訊内容 | ||
contentAbstract | varchar | 300 | 内容摘要 | |
keywords | varchar | 100 | 關鍵詞 | |
categoryId | int | 32 | 資訊類别ID | 外鍵 |
userId | int | 32 | 釋出使用者ID | 外鍵 |
author | varchar | 30 | 作者(來源) | |
publishTime | datetime | 釋出時間 | ||
clicks | int | 32 | 浏覽次數 | |
publishStatus | char | 1 | 釋出狀态 | 1釋出,2撤回 |
插入role的資料:
Insert into t_role values(1,’admin’);
Insert into t_role values(2,’author’);
Insert into t_role values(3,’reader’);
插入user的資料:
Insert into t_user(username,loginName,password,status、roleId)values(‘admin’,’admin’,’123456’,’2’,1);
插入category的資料:
Insert into t_category values(1,’同人’);
Insert into t_category values(2,’科幻’);
Insert into t_category values(3,’都市’);
改代碼第一階段——使用者管理與登入:建立持久類-DAO-service-controller+view;
1建立資料庫;修改db.properties;
2修改持久類3修改DAO和service4修改控制器類5修改頁面檔案
遇到的問題:GBK與UTF-8轉碼的事情;eclipse項目重命名;
https://jingyan.baidu.com/article/4f34706e6e1f85e387b56daf.html
改代碼第二階段——内容管理+攔截器
1修改持久類2修改DAO和service3修改控制器類
重點把news改為blog;
遇到的問題修改項目名:
https://jingyan.baidu.com/article/066074d6fd08ecc3c21cb0d7.html
必須先把編碼改為GBK編碼格式
問題1some characters cannot be mapped using “GBK” character encoding.Either changer the encoding or remove the characters whith are not supported by the “GBK” character encoding.
解決方法:在window-profermance-general-contexttype-text看目錄下的每個檔案,每改一個,update一下,都改為UTF-8;
問題2改news為blog;
解決方法:Ctrl+f;Ctrl+H
4修改頁面檔案(Ctrl+H修改)
路徑blog_publish的上下文中的servlet引發異常,查詢資料庫出錯。Blog.t_news不存在。
原因:可能映射檔案沒配置好;
未解決。
改界面第一階段——前台界面
增加修飾;換皮膚;未開始
改界面第二階段——背景界面
未開始
結論:部分修改可以,但是資料庫映射的地方學得還不夠,明天鞏固一下mybatis相關的内容,分析是哪裡的原因。最後實在不行就不修改了,從頭做一遍。