基于SSM框架下的JAVA编译原理在线答疑系统

最近了解了编译原理在线答疑系统设计与实现项目,在这个平台记录一下这个编译原理在线答疑系统设计与实现项目,方便以后再次使用或学习的时候能够及时的翻阅。在完成这个项目的时候,考虑了很多框架。最终决定选用SSM(MYECLIPSE),该框架具有极强的移植性,多平台性,便于操作性等优点。此框架能在MYECLIPSE开发工具中完美的编写和运行,编译原理在线答疑系统设计与实现为一个 后台项目。这个项目的描述是这样的:利用Internet网络进行课程教学是高等教育教学模式改革的 一个发展方向.针对计算机专业的一门理论性和实践性均很强的专业课,利用JAVA技术设计、开发了网上助学系统, 该系统真正实现了网上自动答疑、在线答疑,并且功能齐全、方便管理,便于学生课后自学,提高了学生学习的积极性、主动性。实施网络教学是提高课程教学水平和办学效率的有效途径。编译原理在线答疑系统主要提供网上教学平台,教师可以通过该系统发布教案,布置/批改作业,发布公告和答疑解惑,并可时实的与学生进行交流。学生可以通过该系统向老师提出问题,跟老师和其他同学讨论,上载作业,查询作业及成绩,并可时实的与老师进行交流。
在对编译原理在线答疑系统设计与实现项目进行需求分析的时候,得出系统的登录角色包括了管理员、用户。对应用户可以通过登录自己的账号,进行入系统。系统对不同角色拥有不同权限。

总结得出该系统所有数据为:管理员(admin)、用户(yonghu)、作业发布(zuoyefabu)、问题交流(wentijiaoliu)、公告(gonggao)

管理员表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 管理员id
username | VARCHAR(255) | | 账号
password | VARCHAR(255) | | 密码

用户表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 用户id
xingming | VARCHAR(255) | | 姓名
zhiwu | VARCHAR(255) | | 职务
nianji | VARCHAR(255) | | 年级
nianling | VARCHAR(255) | | 年龄
xingbuie | VARCHAR(255) | | 性别
username | VARCHAR(255) | | 账号
password | VARCHAR(255) | | 密码

作业发布表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 作业发布id
faburen | VARCHAR(255) | | 发布人
neirong | VARCHAR(255) | | 内容
fabushijian | VARCHAR(255) | | 发布时间

问题交流表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 问题交流id
fabuwenti | VARCHAR(255) | | 发布问题
wentihuifu | VARCHAR(255) | | 问题回复
fabushijian | VARCHAR(255) | | 发布时间

公告表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 公告id
shijian | VARCHAR(255) | | 时间
neirong | VARCHAR(255) | | 内容
zhuyishixiang | VARCHAR(255) | | 注意事项
SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- ----------------------------

-- Table structure for ggbyylzxdyxtsjysx

-- ----------------------------

DROP TABLE IF EXISTS `t_admin`;

CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理员';

-- ----------------------------

DROP TABLE IF EXISTS `t_yonghu`;

CREATE TABLE `t_yonghu` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',`xingming` VARCHAR(255) DEFAULT NULL COMMENT '姓名',`zhiwu` VARCHAR(255) DEFAULT NULL COMMENT '职务',`nianji` VARCHAR(255) DEFAULT NULL COMMENT '年级',`nianling` VARCHAR(255) DEFAULT NULL COMMENT '年龄',`xingbuie` VARCHAR(255) DEFAULT NULL COMMENT '性别',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户';

-- ----------------------------

DROP TABLE IF EXISTS `t_zuoyefabu`;

CREATE TABLE `t_zuoyefabu` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '作业发布id',`faburen` VARCHAR(255) DEFAULT NULL COMMENT '发布人',`neirong` VARCHAR(255) DEFAULT NULL COMMENT '内容',`fabushijian` VARCHAR(255) DEFAULT NULL COMMENT '发布时间',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='作业发布';

-- ----------------------------

DROP TABLE IF EXISTS `t_wentijiaoliu`;

CREATE TABLE `t_wentijiaoliu` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '问题交流id',`fabuwenti` VARCHAR(255) DEFAULT NULL COMMENT '发布问题',`wentihuifu` VARCHAR(255) DEFAULT NULL COMMENT '问题回复',`fabushijian` VARCHAR(255) DEFAULT NULL COMMENT '发布时间',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='问题交流';

-- ----------------------------

DROP TABLE IF EXISTS `t_gonggao`;

CREATE TABLE `t_gonggao` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '公告id',`shijian` VARCHAR(255) DEFAULT NULL COMMENT '时间',`neirong` VARCHAR(255) DEFAULT NULL COMMENT '内容',`zhuyishixiang` VARCHAR(255) DEFAULT NULL COMMENT '注意事项',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='公告';

添加问题交流模块:

从页面中通过post方法,将问题交流信息传入到后台服务器中,在tianjiawentijiaoliuact

中接收,字段包括发布问题,问题回复,发布时间使用insert方法添加数据,将数据同步到

数据库中,完成添加操作。定义添加成功提示信息,添加问题交流成功,并保存到request中具体代码如下:

通过wentijiaoliudao的insert方法将页面传输的问题交流添加到数据库中 wentijiaoliudao.insert(wentijiaoliu);

将添加问题交流成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加问题交流成功");

返回问题交流管理界面

return "forward:/tianjiawentijiaoliu.action";

查询问题交流模块:

在后台wentijiaoliuguanli方法中,通过selectByexample方法获取所有的数据信息。将其保存到request中,在页面中通过foreach方法

进行循环展示到table中。完成问题交流查询操作。具体代码如下:

生成问题交流样例类,通过example定义查询条件 WentijiaoliuExample example = new WentijiaoliuExample();

通过wentijiaoliudao的selectByExample方法查询出所有的问题交流信息 List wentijiaoliuall = wentijiaoliudao.selectByExample(example);

将问题交流信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("wentijiaoliuall", wentijiaoliuall);

返回问题交流管理界面

return "forward:/wentijiaoliuguanli.action";

修改问题交流模块:

对已经上传的问题交流信息可以进行修改操作,该部分操作在问题交流管理界面中点击修改按钮可以跳转到问题交流修改页面。在修改页面中,将初始化所有的问题交流字段信息,字段信息包括发布问题,问题回复,发布时间。字段信息内容通过问题交流id获取。修改后的信息传入到wentijiaoliuController中接收为wentijiaoliu。在wentijiaoliuController中包含有提前定义好的wentijiaoliudao,该参数为wentijiaoliuMapper是实现。wentijiaoliuMapper中定义了修改方法,此处使用修改方法为updateByPrimaryKeySelective,该方法可以将修改后信息同步到数据库中,最终将修改成功信息返回页面中。该部分代码如下:

通过wentijiaoliudao的修改方法根据id修改对应的问题交流 wentijiaoliudao.updateByPrimaryKeySelective(wentijiaoliu);

将修改问题交流成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改问题交流信息成功");

返回问题交流管理界面

return "forward:/wentijiaoliuguanli.action";

删除问题交流模块:

在管理页面中,点击删除。页面将通过a标签的href属性,使用get方法将该问题交流

的id上传到服务器中,在服务器中通过wentijiaoliuController类中的shanchuwentijiaoliu进行接收,之后调用wentijiaoliuMapper中的deleteByPrimaryKey方法根据ID进行删除。将删除信息保存到request的message中,在页面给出用户删除成功的提示信息,该部分核心代码如下:

通过wentijiaoliudao的删除方法根据id删除对应的问题交流 wentijiaoliudao.deleteByPrimaryKey(id);

将删除问题交流成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除问题交流成功");

返回问题交流管理界面

return "forward:/wentijiaoliuguanli.action";

猜你喜欢

转载自www.cnblogs.com/rt14/p/11580158.html