👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频
1 、功能描述
基于SSH的在线考试管理系统拥有两种角色,具体功能如下:
2、项目技术
后端框架:Spring、SpringMVC、Hibernate
前端框架:Bootstrap、jsp、css、JavaScript、JQuery
2.1 SSH
SSH框架(Struts+Spring+Hibernate)是一种广泛应用的Java企业级开发框架组合,它将Struts、Spring和Hibernate三个优秀的框架有机地结合在一起,提供了一套完整的解决方案,可以帮助开发人员快速构建可扩展、可维护的Java应用程序。
2.2 mysql
MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。
3、开发环境
- JAVA版本:JDK1.8
- IDE类型:IDEA、Eclipse都可运行
- tomcat版本:Tomcat 7-10版本均可
- 数据库类型:MySql(5.x和8.x版本都可)
- maven版本:无限制
- maven项目:否
- 硬件环境:Windows 或者 Mac OS
4、功能截图+视频演示+文档目录
4.1 登录
4.2 管理员模块
4.3 用户模块
4.4 各种图
5 、核心代码实现
5.1 配置代码
#mysql8?MySQL5????com.mysql.cj.jdbc.Driver??
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/exam?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
db.username=root
db.password=root
hibernate.current_session_context_class=thread
hibernate.hbm2ddl.auto=update
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.enable_lazy_load_no_trans=true
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.Java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
5.2 登录+注册+其它代码
@Controller
@RequestMapping("/sys/user")
public class SysUserController extends BaseControllerImpl<SysUser, Long> {
private final SysUserService sysUserService;
private final SysAuthorityService sysAuthorityService;
@Autowired
public SysUserController(SysUserService sysUserService,
SysAuthorityService sysAuthorityService) {
super(sysUserService, "sys/user-input.jsp", "sys/user-list.jsp");
this.sysUserService = sysUserService;
this.sysAuthorityService = sysAuthorityService;
}
/**
* 保存记录
* @param user
* @param ids
* @return
*/
@PostMapping(SAVE_PATH)
public String save(@ModelAttribute("entity") SysUser user,
@RequestParam(name="authorityIds", required=false) List<Byte> authorityIds) {
if (user.getMoney() == null) {
user.setMoney(1000);
}
Set<SysAuthority> authorities = sysAuthorityService.findAll(authorityIds);
authorities.add(sysAuthorityService.getDefaultAuthority());
user.setAuthorities(authorities);
return baseSave(user);
}
@PostMapping("/search")
public String search(Model model, @RequestParam("keyword") String keyword) {
return baseShowListView(model, sysUserService.search(keyword));
}
@Override
public String showInputView(Model model, @ModelAttribute("entity") SysUser entity) {
Iterable<SysAuthority> authorities = sysAuthorityService.findAll();
model.addAttribute("authorities", authorities);
return super.showInputView(model, entity);
}
@Override
public String showDetailView(Model model, @ModelAttribute("entity") SysUser entity) {
Iterable<SysAuthority> authorities = sysAuthorityService.findAll();
model.addAttribute("authorities", authorities);
return super.showDetailView(model, entity);
}
}