新闻发布系统的设计熊志青的毕业设计内容摘要:

销用 户 注 册浏 览 功 能浏 览 新 闻发 布 评 论 图 前台系统功能 系统模块功能结构图 系统具有三类用户:游客 ,已登录用户,管理员。 本系统中他们的权限依次递增,已登录用户具有游客所有的权限,管理员具有已登录用户所有的权限,所以在图中就没有标明每类用户所有的功能。 只是标明了该用户权限所特有的功能(除了比该用户权限低的功能 )。 系统模块功能结构图如图 所示。 新 闻 发 布 系 统游 客已 登 录 用户管 理 员浏 览 新闻发 表 评 论新 闻 栏 目管 理用 户 管 理 评 论 管 理新 闻 管 理登 录注 册注 销 图 系统模块功能结构图 9 总业务流程图 系统的总业务流 程图为:打开页面,对于每一个能够登录到本系统的人都称之为游客,游客可以浏览新闻,但是不能对其进行评论,如果需要得到更多的权限的话,游客必须先登录, 如果还未注册,就要先注册,注册成功后,再进行登录。 登录成功后系统会自动判断用户是否是系统管理员,如果不是管理员, 就 只能浏览新闻,发表评论和注销的功能,如果是管理员,就 可以对新闻,新闻栏目,用户以及评论进行管理,本系统的业务流程图如图 所示。 打 开 主 页是 否 登 录是 否 已 注 册否注 册浏 览 新 闻 , 发 表 评 论结 束是 否 是 管 理员否新 闻 , 新 闻 栏 目 ,用 户 和 评 论 管 理是登 录 否注 册 失 败注 册 成 功是登 录 成 功登 录 成 功浏 览 新 闻注 销 图 系统业务流程图 系统数据库设计 数据库逻辑结构设计 根据功能模块划分的结果。 本系统的用户有三类,系统管理员,已登录的用户和游客。 不同的用户的权限和操作是不同的。 游客在本系统中不需要进行数据记录,所以 对于新闻发布系统来说真正意义上只有两种用户,所以需要 1 个数据实体  用户实体:包括用用户名,密码,邮箱,用户类型标志,其中用户名,密码,邮箱格式是登录和注册时验证所必需的,这些信息都有管理员来维护。 除了上面的用户实体外,新闻管理还需要对新闻进行管理,新闻栏目管理和新闻评论管理还要对新闻栏目和新闻评论进行管理 10  新闻实例:用于记录新闻的基本信息。 包括新闻类型,新闻标题,新闻栏目,发布新闻,新闻的评论  新闻栏目:用于记录新闻栏目的基本信息。 包括新闻栏目名词,新闻栏目包含的新闻  评论:用于记录评论的基本信息。 包括用 户信息,新闻,评论内容,发表的评论时间 基于上面的设计,开始设计表,表与表相互关联,共同存储着系统所需要的数据,在设计数据库表的过程中,一般要遵循以下几条原则  数据库的一个表最好只存储一个实体或对象的相关信息,不同的实体最好存储在不同的数据表中,如果实体还可以再划分,实体的划分原则是,划分后的实体比当前系统要开发的实体的复杂的小  数据表的信息结构一定要合适,表达字段的数量一般不要过多  扩充信息和动态变化的信息一定要合适, 表达字段的数量一般不要过多  扩充信息和动态变化的信息一定要放在不同的表里  多对多的表关 系尽量不要出现 设计数据库表及表间关系。 数据库表关系图如图 所示 发表留言新闻新闻留言n e w st yp en e w sT yp e I dn e w sT yp e N a m eT e xtT e xtu se ru se r I du se r N a m eu se r P w du se r E m a i lu se r F l a gT e xtT e xtT e xtT e xtT e xtr e p l a yr e p l a yI dr e p l a yC o n t e n tr e p l a yT i m eT e xtT e xtT e xtn e w sn e w sI dn e w sT i t l en e w sC o n t e n tn e w sT i m eT e xtT e xtT e xtT e xt 图 数据库表关系图 ER 图 ER 图如图 所示 11 图 ER 图 数据库表总览 数据库表总览 表名 功能说明 newstype 表 存储新闻栏目信息 news 表 存储新闻信息 user 表 存储用户信息 replay 表 存储评论信息 数据库表设计 由数据模型利用 MySql 进行数据库的详细设计,其基本表的设计如下: (1) 新闻栏目 (newstype) 中文字段名 英文字段名 字段类型 长度 主键 /外 键 字段值约束 新闻栏目编号 newsTypeId varchar 32 P NOT NULL 栏目名称 newsTypeName varchar 32 (2) 新闻 (news) 中文字段名 英文字段名 字段类型 长度 主键 /外键 字段值约束 新闻编号 newsId varchar 32 P NOT NULL 新闻标题 newsTitle varchar 32 新闻内容 newsContent varchar 2020 新闻发布时间 newsTime varchar 32 12 (3) 用户 信息 (user) 中文字段名 英文字段名 字段类型 长度 主键 /外键 字段值约束 用户编号 userId varchar 32 P NOT NULL 用户名 userName varchar 32 密码 userPwd varchar 32 用户类型 userFlag varchar 32 (4) 评论 (replay) 中文字段名 英文字段名 字段类型 长度 主键 /外键 字段值约束 评论编号 replayId varchar 32 P NOT NULL 评论内容 userName varchar 32 评论时间 userPwd varchar 32 13 第四 章 系统的开发工具 开发技术 本 系统 是采用 Struts+Hibernate 技术 和 Mysql 数据库 来开发的。  Struts 框架 图 Structs实现的 MVC框架 Struts 只是一个 MVC 框架( Framework) ,用于快速开发 Java Web 应用。 Struts 将应用程序分为 3 个部分:模型 Model,视图 View,控制器Controller; 模型组件:负责业务逻辑; 模型包含应用程序的核心功能。 模型封装了应用程序的状态。 有时它包含的唯一功能就是状态。 它对视图或控制器一无所知。 视图组件:负责表示业务范围的视图; 视图提供模型的表示。 它是应用程序的 外观。 视图可以访问模型的读方法,但不能访问写方法。 此外,它对控制器一无所知。 当更改模型时,视图应得到通知。 控制器组件:负责控制用户输入的流和状态; 控制器对用户的输入作出反应。 它创建并设置模型。 Struts,它是使用 servlet 和 JavaServer Pages 技术的一种 MVC 实现; Struts, Apache 组织的一个项目, MVC 的一种开放源码实现;  Hibernate 介绍 Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 它不仅提供了从 Java 类到数据表之间的映射,也提供了数据查询和恢复机制。 相对于使用 JDBC 和 SQL 来手工操作数据库, Hibernate 可以大 大减少操作数据库的工作量。 另外 Hibernate 可以利用代理模式来简化载入类的过程,这将大大减少利用 Hibernate QL 从数据库提取数据的代码的 14 编写量,从而节约开发时间和开发成本 Hibernate 可以和多种 Web 服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器。  Hibernate 原理 Hibernate 技术本质上是一个提供数据库服务的中间件。 它的架构如图 所示: 图 Hibernate 的 架构图 它是利用数据库以及其他一些配置文件如 Hibernate .properties , XML Mapping 等来为应用程序提供数据持久化服务的。 Hibernate 具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的运行方式。 在轻型体系中,应用程序提供 JDBC 连接,并且自行管理事务,这种方式使用了 Hibernate 的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的 JDBC/JTA API 都被抽象了, Hibernate 会替你照管所有的细节。  工厂方法模式 在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个 对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。 如何应对这种变化。 提供一种封装机制来隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变。 这就是要说的Factory Method 模式了。 定义一个用户创建对象的接口,让子类决定实例化哪一个类。 DAOFactory使一个类的实例化延迟到其子类。 IDE 的选择 15 My eclipse: Eclipse 是一个 IDE( Integrated Developing Environment),而这个 IDE 是允许安装第三方 开发的插件来使自身的功能得到扩展和增强的,而My eclipse 就是其中的一种有名的插件集之一,主要是为 J2EE开发; My Eclipse将开发者常用到的一些有用的插件都集合起来,提供一种高级编程环境,可以比较轻松完成 struts, Hibernate, Spring 布局,编写。 数据库管理软件 MySQL: MySQL 是一个开放源码的小型关系型数据库管理系统,目前MySQL 被广泛地应用在 Inter 上的中小型网站中。 由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一 特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。 与其他的大型数据库例如 Oracle、DB SQL Server 等相比, MySQL 自有它的不足之处,如规模小、功能有限( MySQL 不支持视图(已经被列入 版的开发计划)、事件等)等,但是这丝毫也没有减少它受欢迎的程度。 对于一般的个人使用者和中小型企业来说,MySQL 提供的功能已经绰绰有余,而且由于 MySQL 是开放源码软件,因此可以大大降低总体拥有成本。 UML 设计工具 PowerDesigner 是 Sybase 公司的 CASE 工具 集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。 利用PowerDesigner 可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。 它可与许多流行的数据库设计软件,例如: PowerBuilder,Delphi, VB 等相配合使用来缩短开发时间和使系统设计更优化。 本系统中,我们使用 PowerDesigner 来绘制用例图等。 另一个工具就是 visio。 版本控制 CVS: CVS 是 Concurrent Version System(并行版本系统)的缩写, 是一个版本控制系统 ,使用它管理源代码在多个开发人员之间的修改。 日志管理 Log4J: Log4j 是一个开源的日志记录组件,其产品已经相当的成熟,且使用非常的广泛。 在工程中以易用,方便等代替了 System. out 等打印语句。 它允许开发人员以任意的精细程度控制哪些日志说明被输出。 通过使用外部的配置文 16 件,可以在运行时配置它。 在本系统中,我们利用 log4j 来记录网站运行时所产生的日志,以帮助技术人员维护网站。 17 第五 章 系统详细设计 系统架构 设计 整个系统遵循多层次的架构模式 ,从上到下依次为视图层,控制器层,业务层,持久化层,数据库层。 视 图 层控 制 层业 务 层持 久 化 层数 据 库 层 图 系统架构 层次间的依赖关系的原则应该是自顶向下的,即上层可以依赖下层,而下层应尽量减少对上层的依赖。 同时层次之间的交互应该减少对实现的依赖,通过接口进行交互。 在本。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。