每天记录学习,每天会有好心情。*^_^*
今日思考,完成一个基于web的java自测试系统项目,需要实现哪些功能?
系统包括智能组卷、自动批卷、成绩发布等功能 ,详细介绍了一种智能组卷的算法 ,可根据测试者的要求提供一份内容及难度分布科学、合理的试卷。
SSM(MYECLIPSE)框架及其适合基于web的java自测试系统,使用MVC的思想可以极大程度减少重复工作量。和SSM(MYECLIPSE)框架最配的开发工具是MYECLIPSE。MYECLIPSE集成了大量插件,可以更好的使用SSM(MYECLIPSE)进行项目的开发,使得项目开发时事半功倍。
通过对基于web的java自测试系统系统的仔细分析,可以得出基于web的java自测试系统系统是一个 后台项目。
在这样一个项目中,系统的登录角色是必不可少的,对每个登录角色设置账号、密码。以确保系统可以正常登录使用。SSM(MYECLIPSE)项目中包含的登录角色有管理员、用户。
总结得出基于web的java自测试系统项目所有数据为:管理员(admin)、用户(yonghu)、科目(kemu)、试题(shiti)
基于web的java自测试系统之管理员表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 管理员id username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
基于web的java自测试系统之用户表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 用户id xingming | VARCHAR(255) | | 姓名 nianling | VARCHAR(255) | | 年龄 zhiye | VARCHAR(255) | | 职业 quanxian | VARCHAR(255) | | 权限 username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
基于web的java自测试系统之科目表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 科目id zhonglei | VARCHAR(255) | | 种类 leixing | VARCHAR(255) | | 类型
基于web的java自测试系统之试题表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 试题id neirong | VARCHAR(255) | | 内容 biaoti | VARCHAR(255) | | 标题 shijian | VARCHAR(255) | | 时间 chengji | VARCHAR(255) | | 成绩
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- ---------------------------- -- Table structure for ggjywebdjavazcsxt -- ---------------------------- 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 '姓名',`nianling` VARCHAR(255) DEFAULT NULL COMMENT '年龄',`zhiye` VARCHAR(255) DEFAULT NULL COMMENT '职业',`quanxian` 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_kemu`; CREATE TABLE `t_kemu` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '科目id',`zhonglei` VARCHAR(255) DEFAULT NULL COMMENT '种类',`leixing` VARCHAR(255) DEFAULT NULL COMMENT '类型',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='科目'; -- ---------------------------- DROP TABLE IF EXISTS `t_shiti`; CREATE TABLE `t_shiti` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '试题id',`neirong` VARCHAR(255) DEFAULT NULL COMMENT '内容',`biaoti` VARCHAR(255) DEFAULT NULL COMMENT '标题',`shijian` VARCHAR(255) DEFAULT NULL COMMENT '时间',`chengji` VARCHAR(255) DEFAULT NULL COMMENT '成绩',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='试题';
添加试题模块:
从页面中通过post方法,将试题信息传入到后台服务器中,在tianjiashitiact
中接收,字段包括内容,标题,时间,成绩使用insert方法添加数据,将数据同步到
数据库中,完成添加操作。定义添加成功提示信息,添加试题成功,并保存到request中具体代码如下:
通过shitidao的insert方法将页面传输的试题添加到数据库中 shitidao.insert(shiti);
将添加试题成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加试题成功");
返回试题管理界面
return "forward:/tianjiashiti.action";
查询试题模块:
在后台shitiguanli方法中,通过selectByexample方法获取所有的数据信息。将其保存到request中,在页面中通过foreach方法
进行循环展示到table中。完成试题查询操作。具体代码如下:
生成试题样例类,通过example定义查询条件 ShitiExample example = new ShitiExample();
通过shitidao的selectByExample方法查询出所有的试题信息 List shitiall = shitidao.selectByExample(example);
将试题信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("shitiall", shitiall);
返回试题管理界面
return "forward:/shitiguanli.action";
修改试题模块:
对已经上传的试题信息可以进行修改操作,该部分操作在试题管理界面中点击修改按钮可以跳转到试题修改页面。在修改页面中,将初始化所有的试题字段信息,字段信息包括内容,标题,时间,成绩。字段信息内容通过试题id获取。修改后的信息传入到shitiController中接收为shiti。在shitiController中包含有提前定义好的shitidao,该参数为shitiMapper是实现。shitiMapper中定义了修改方法,此处使用修改方法为updateByPrimaryKeySelective,该方法可以将修改后信息同步到数据库中,最终将修改成功信息返回页面中。该部分代码如下:
通过shitidao的修改方法根据id修改对应的试题 shitidao.updateByPrimaryKeySelective(shiti);
将修改试题成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改试题信息成功");
返回试题管理界面
return "forward:/shitiguanli.action";
删除试题模块:
在管理页面中,点击删除。页面将通过a标签的href属性,使用get方法将该试题
的id上传到服务器中,在服务器中通过shitiController类中的shanchushiti进行接收,之后调用shitiMapper中的deleteByPrimaryKey方法根据ID进行删除。将删除信息保存到request的message中,在页面给出用户删除成功的提示信息,该部分核心代码如下:
通过shitidao的删除方法根据id删除对应的试题 shitidao.deleteByPrimaryKey(id);
将删除试题成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除试题成功");
返回试题管理界面
return "forward:/shitiguanli.action";