新闻发布系统设计的过程
需求分析和设计阶段
首先分析功能需求:有四个模块(用户管理模块、新闻类别管理模块、新闻发布管理模块前台类别展示模块)。
然后进行系统架构设计:有四个架构(持久对象层、数据访问层、业务逻辑层、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://blog.csdn.net/u010234516/article/details/52853214
https://blog.csdn.net/u013036274/article/details/53980233
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
https://blog.csdn.net/qq_35885488/article/details/80791817
4修改页面文件(Ctrl+H修改)
路径blog_publish的上下文中的servlet引发异常,查询数据库出错。Blog.t_news不存在。
原因:可能映射文件没配置好;
未解决。
改界面第一阶段——前台界面
增加修饰;换皮肤;未开始
改界面第二阶段——后台界面
未开始
结论:部分修改可以,但是数据库映射的地方学得还不够,明天巩固一下mybatis相关的内容,分析是哪里的原因。最后实在不行就不修改了,从头做一遍。