2019.10.13更新提示
这个项目是2017年写的,之前有不少小伙伴联系我,询问这个项目的事情,在此说声抱歉,虽然项目主要由我负责,但是本项目确实问题很多,基于XML配置的SSM框架,对初学者来说简直是一种灾难。
大家可以参考我的源码和设计思路,至于其他问题,就恕我没法多说了——时隔两年,我也忘得差不多了。
另外,源码加群701365388后下载即可。
---
上学期的时候写了一个SSM框架整合的小系统,叫做在线考试系统,简单来说就是实现教师(管理员)发布考试和学生(普通用户)参加考试的功能,当然其中还有一些稍显复杂的东西。
SSM=Spring+SpringMVC+Mybatis,也是应用非常广泛的一种java web框架。
篇幅所限不会介绍很多关于功能和编码的知识,下面会贴出项目的工作目录截图、运行截图以及源代码的下载链接。
此外,推荐一下两篇有关SSM环境配置的博客,博主都是很厉害的程序猿啦。参考:使用maven创建web项目以及SSM框架详细教程
下面是OnlineExam的介绍,源码下载地址第四栏。
1.工作目录展示:
2.项目简要说明:
该OnlineExam项目采用SSM框架构建,分为Controller,service,serviceImpl,model,dao,mapping层。
前端部分使用jsp技术,包括了boostrap/jquery等框架,还使用了jstl标签库等。
各层介绍如下:
1.Controller层:控制器层,接收并处理HTTP请求,调用service层接口
2.service层:接口层
3.serviceImpl:接口实现层
4.model层:java bean类
5.dao层:数据库SQL查询接口
6.mapping层:数据库xml文件,主要由mybatis自动生成。
注:model,dao,mapping层中基本文件时由mybatis框架自动生成,项目生成方法参照数据库设计。
配置文件介绍:
1.pom.xml
2.web.xml
3.src/main/resources下有spring-mvc.xml和spring-mybatis.xml,还有jdbc.properties和log4j
3.运行截图:
4.源码下载地址:SSM框架源码下载
5.补:数据库文件,这个是用来建立项目所需的数据库的。
/*
Navicat MySQL Data Transfer
Source Server : localhost_3306
Source Server Version : 50719
Source Host : localhost:3306
Source Database : online_exam
Target Server Type : MYSQL
Target Server Version : 50719
File Encoding : 65001
Date: 2018-03-09 22:17:47
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for exam
-- ----------------------------
DROP TABLE IF EXISTS `exam`;
CREATE TABLE `exam` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`start_time` datetime NOT NULL,
`end_time` datetime NOT NULL,
`length` int(11) NOT NULL,
`create_time` datetime NOT NULL,
`class_id` int(11) NOT NULL,
`number` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for exam_class
-- ----------------------------
DROP TABLE IF EXISTS `exam_class`;
CREATE TABLE `exam_class` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`classname` varchar(255) NOT NULL,
`create_time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for exam_history
-- ----------------------------
DROP TABLE IF EXISTS `exam_history`;
CREATE TABLE `exam_history` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`exam_id` int(11) NOT NULL,
`student_email` varchar(255) NOT NULL,
`question_id` int(11) NOT NULL,
`score` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for exam_score
-- ----------------------------
DROP TABLE IF EXISTS `exam_score`;
CREATE TABLE `exam_score` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`student_email` varchar(255) NOT NULL,
`exam_id` int(11) NOT NULL,
`total_score` int(11) NOT NULL,
`total_point` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for exam_student
-- ----------------------------
DROP TABLE IF EXISTS `exam_student`;
CREATE TABLE `exam_student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`exam_id` int(11) NOT NULL,
`student_name` varchar(255) NOT NULL,
`student_email` varchar(255) NOT NULL,
`student_grade` int(11) NOT NULL,
`student_class` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=70 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for question
-- ----------------------------
DROP TABLE IF EXISTS `question`;
CREATE TABLE `question` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`class_id` int(11) NOT NULL,
`content` varchar(255) NOT NULL,
`type` int(11) NOT NULL,
`options` varchar(255) NOT NULL,
`answer` varchar(255) NOT NULL,
`point` int(11) NOT NULL,
`create_time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=110 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`identity` int(11) NOT NULL,
`create_time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;