天天看点

将新闻发布系统改为博客系统的思路

新闻发布系统设计的过程

需求分析和设计阶段

首先分析功能需求:有四个模块(用户管理模块、新闻类别管理模块、新闻发布管理模块前台类别展示模块)。

然后进行系统架构设计:有四个架构(持久对象层、数据访问层、业务逻辑层、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相关的内容,分析是哪里的原因。最后实在不行就不修改了,从头做一遍。