一、系统概述
(一)功能需求:
- 用户管理(角色设置、登录验证)
- 新闻类别管理
- 新闻发布管理
- 前台新闻展示
(二)系统架构
- 持久对象层:由若干持久化类(实体类)组成。
- 数据访问层:由若干DAO接口和MyBatis映射文件组成。接口的名称统一以DAO结尾,且MyBatis的映射文件名称要与接口的名称相同。
- 业务逻辑层:该层由若干Service接口和实现类组成。在本系统中,业务逻辑层的接口统一使用Service结尾,其实现类名称统一在接口名后加Impl。该层主要用于实现系统的业务逻辑。
- Web表现层:该层主要包括Spring MVC中的Controller类和JSP页面。Controller类主要负责拦截用户请求,并调用业务逻辑层中相应组件的业务逻辑方法来处理用户请求,然后将相应的结果返回给JSP页面。
二、数据分析设计
角色表(t_role):
字段名 | 类型 | 长度 | 字段说明 | 备注 |
---|---|---|---|---|
roleId | Int | 32 | 角色ID | 主键 |
roleName | VarChar | 20 | 角色名称 |
用户表(t_user):
字段名 | 类型 | 长度 | 字段说明 | 备注 |
---|---|---|---|---|
userId | Int | 32 | 用户ID | PK |
username | VarChar | 20 | 用户姓名 | |
loginName | VarChar | 20 | 登录账号 | |
password | VarChar | 20 | 登录密码 | |
roleID | Int | 32 | 角色ID | FK |
tel | VarChar | 50 | 联系电话 | |
registerTime | DataTime | 注册时间 | ||
status | Char | 1 | 注册状态 | 1:未启用;2:已启用;3:已禁用 |
新闻类别表(t_category):
字段名 | 类型 | 长度 | 字段说明 | 备注 |
---|---|---|---|---|
categoryId | Int | 32 | 类别ID | PK |
categoryName | VarChar | 20 | 类别名称 |
新闻表(t_news):
字段名 | 类型 | 长度 | 字段说明 | 备注 |
---|---|---|---|---|
newsId | Int | 32 | 类别ID | PK |
title | VarChar | 60 | 信息标题 | |
contentTitle | VarChar | 120 | 信息内容标题 | |
titlePicUrl | VarChar | 120 | 标题图(路径) | |
content | Text | 信息内容 | ||
contentAbstract | VarChar | 300 | 内容摘要 | |
keywords | VarChar | 100 | 关键词 | |
categoryId | Int | 32 | 信息类别ID | FK |
userId | Int | 32 | 发布用户ID | FK |
author | VarChar | 30 | 作者(来源) | |
publishTime | DataTime | 发布时间 | ||
clicks | Int | 32 | 浏览次数 | |
publishStatus | Char | 1 | 发布状态 | 1:发布;2:撤稿 |
CREATE DATABASE news;
USE news;
CREATE TABLE t_role(
roleId int primary key,
roleName varchar(20)
);
insert into t_role value(1,'管理员');
insert into t_role value(2,'信息员');
create table t_user(
userId int primary key auto_increment,
userName varchar(20),
loginName varchar(20),
password varchar(20),
tel varchar(50),
registerTime DATETIME,
status char(1),
roleId int,
foreign key (roleId) references t_role(roleId)
);
insert into t_user(userName,loginName,password,status,roleId) values('张三','admin','123456','2',1);
create table t_category(
categoryId int primary key,
categoryName varchar(20)
);
insert into t_category values(1,'今日头条');
insert into t_category values(2,'综合资讯');
insert into t_category values(3,'国内新闻');
insert into t_category values(4,'国际新闻');
create table t_news(
newsId int primary key auto_increment,
title varchar(60),
comtentTitle varchar(120),
titePicUrl varchar(120),
content text,
contentAbstract varchar(300),
keywords varchar(100),
author varchar(30),
publishTime DATETIME,
click int ,
publishStatus char(1),
categoryId int,
userId int,
foreign key (categoryId) references t_category(categoryId),
foreign key (userId) references t_user(userId)
);
三、功能设计与实现
- 开发环境和框架搭建
- 角色管理模块
- 用户管理模块
- 新闻类别管理模块
- 新闻发布管理模块
- 前台新闻展示模块