本 科 毕 业 设 计
表4.8 角色功能表(RoleMenu)
字段名称 Sys_code Role_code Menu_code Menu_name Menu_order
数据类型 varchar varchar varchar varchar varchar
长度 200 200 200 200 200
可空否 N Y Y Y Y
第 16 页 共 36 页
说明 系统代码 权限代码 功能代码 功能名称 功能排序
角色栏目表RoleColumn的结构如表4.9所示。
表4.9 角色栏目表(RoleColumn)
字段名称 Role_code Column_id
数据类型 varchar Int
长度 200 11
可空否 Y Y
说明 权限代码 栏目ID
RoleUser角色用户表主要记录每个登录用户的权限代码,用户类型不同对应的权限代码不同,从而每个用户的操作权限不同,每个字段的具体含义见表4.9角色用户表
RoleUser的结构如表4.10所示。
表4.10 角色用户表(RoleUser)
字段名称 Role_code Login_user Remark
数据类型 varchar varchar varchar
长度 200 200 200
可空否 Y Y Y
说明 权限代码 登录用户 标记
对大多数应用系统而言,很大程度上都是围绕对数据库的操作展开的,数据库本身才是应用系统的核心部分,程序界面只是提供用户对数据库中的数据的组织与管理的接口。任何数据库结构的变更都很可能导致界面程序的改动。因此,数据库结构设计至关重要。
4.4 代码设计
代码是代表客观存在的实体或属性的符号,科学合理的代码,可以使计算机对数据的分类、校对、统计、查询等的处理变得简单快捷。
本系统的代码设计的原则是:代码要具有唯一性、标准化、方便,结构尽量简单,
本 科 毕 业 设 计
计。
第 17 页 共 36 页
长度尽可能的短。以数据库设计中的几个表所涉及到的代码为例说明本系统的代码设
系统多数代码设计采用无实意顺序码与实意日期编辑,由于产品进销存其关键的是时间,因代码编排采用时间顺序。而信息,生产厂商信息采用无实意的代码编辑。
4.5 输入输出设计
输入输出是用户与系统的重要的、直接的接口,企业日常运作而产生的原始数据要靠系统的输入完成,同时用户所需的各种信息、报表都要由系统的输出完成,所以输入输出设计对于系统将来的实际使用效果会产生很大影响。
本系统的输入设计原则是本着保证处理需要的前提下尽量减少输入;数据输入时要采取有效措施,以减少错误的发生,输入方式以键盘输入为主。为避免输入时产生数据错误大部分输入采用系统自动生成,用户只要双击或者单击鼠标就能实现数据的插入或删除。
本系统的输出设计原则是界面美观、数据准确,采用的输出方式主要以显示输出为主,同时在必要的地方采用打印输出。
4.6 安全保密设计
本系统的保密功能通过用户的权限设定来实现。
用户在登录系统时输入密码,如果密码正确,系统根据该用户的权限,设置该用户可以进行的操作。
用户的权限设定是以系统的菜单项为基本单位,只有用户具有使用该菜单的权限时,菜单项才可以为其所用。
当添加新用户时,用户的权限为空(即不能进行任何操作) 。
系统的数据安全通过数据备份与恢复的功能来实现,此时应为该用户设置相应权限;用户权限也可以根据具体情况随时修改。
在进行备份时,用户最多可以保存三个备份,相应的数据库恢复也可以从三个备份中选择一个进行恢复。
此外,为保证计算机的安全,每台计算机都加装了UPS不间断电源,保证在突然断电情况下能够正常退出系统。
本 科 毕 业 设 计
5 详细设计
5.1 企业信息管理模块
5.1.1 企业信息采编
a) 页面位置
WebRoot/admin/News/index.jsp b) 功能分析
第 18 页 共 36 页
添加、删除并刷新企业的各种栏目信息。如企业公告类、企业信息类、企业活动类、企业产品类、企业说明类。各个栏目下又有其相应的子信息。如企业说明类的子栏目类包括关于企业、关于领导、关于部门、关于我们。各栏目信息内容包括标题、来源、关键字、摘要、栏目子栏目、内容、相关文件名称、相关文件等属性信息。该模块主要通过在线编辑器来简化企业信息的录入操作并且丰富了企业信息。
c) 算法分析
当进行添加操作时会调用add_act.jsp 页面中的myInfoDao.addNewInfo()方法来完成信息的添加操作。添加消息页面,如图5.1所示。
图5.1 添加显示页面(add.jsp)
String sql = \//sql语句串
PreparedStatement pstmt = conn.prepareStatement(sql);/*使传入的SQL命令事先编好等待使用,执行操作*/
本 科 毕 业 设 计
第 19 页 共 36 页
StringReader reader = new StringReader(infovo.getInfoContent());
pstmt.setCharacterStream(1,reader,infovo.getInfoContent().length());/*设定字符流数值给PreparedStatement类对象的In参数*/
int count = pstmt.executeUpdate();//对数据库进行更新操作并将其返回值给count String sql = new String(\boolean sign = db.executeUpdate(sql);/*执行删除操作后结果的返回值给sign,从而表明其状态。*/ 5.1.2 企业信息审核
a) 页面位置
Admin/news/auditing.jsp b) 功能分析
由系统管理员对录入后的企业信息进行审核。根据事实情况可进行发布和驳回两种操作。
c) 算法分析:
DBConnManager db; //建立数据库对象 Vector infolist; //建立一个vector对象 String infoSql = null; // 初始化SQL语句
db = new DBConnManager();/*建立数据库连接,DBConnManager通过hibernate连接数据库应用与操作。*/
infolist = new Vector(); // infolist初始化
infoSql=\ a.otime,
a.keyword,
a.memo,
a.info_content_id,
a.sys_column_id,
a.preinfo_id,
a.link_name, a.link_url, a.file_name, a.file_path, a.file_type, a.image_memo, a.image_path, a.readed_num, a.status, b.content, c.name sysname, d.name operatorname FROM info_title a,info_content b,sys_column c, sys_user d where a. status = 1 and a.info_content_id = b.info_content_id and a.sys_column_id = c.serial_id and c.status = 1 and a.oid = d.sys_user_id order by a.qh,a.otime desc\数据库SQL语言拼写 InfoVo infovo; //初始化javaBean对象的一个VO类
本 科 毕 业 设 计
for (ResultSet rs = db.executeQuery(infoSql); rs.next();
第 20 页 共 36 页
infolist.add(infovo)) { /*将executeQuery方法取到的数据放入resultSet对象中,并通过循环,将值传给JavaBean对象的InfoVo对象 */
String sqls[]=new String[infoID.length];//建立拥有多条查询语句的数组 conn = getConnection();//生成一数据库连接对象
conn.setAutoCommit(false);//设置Connection类的AutoCommit状态 stmt = conn.createStatement();//建立Statement类对象 f or(i=0;i stmt.addBatch(sql[i]);//添加批处理查询语句 } stmt.executeBatch();//执行批量删除语句 conn.commit();//确定执行对数据库SQL语句操作 5.1.3 站内综合查询 a) 页面位置 Admin/news/search.jsp b) 功能分析 对于企业所有信息根据其信息、标题、关键字等进行综合查询。方便快捷的得到企业的各种信息。 c) 算法分析 站内综合信息查询页面如图5.2所示: 图5.2 站内综合信息查询页面(search.jsp)