飞道的博客

Java项目:springboot在线选课系统

274人阅读  评论(0)

作者主页:源码空间站2022

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

后端技术包含springboot+mybatis+spring security+mysql+redis

前端技术包含 semanticUI + thymeleaf模板引擎

使用教程

1.  下载项目之后 等待maven安装对应jar包
2.  自行下载redis 并按照资源包下的application.yml要求进行配置

3.  自行安装MySQL数据库 执行资源包下的sql文件

使用说明

1.  运行redis服务器
2.  启动项目
3.  访问localhost:8080

4.  用户名:admin  密码:admin

注意事项

若导出信息时报错,则需要设置mysql,设置方式如下:

SELECT @@sql_mode; 查看是否包含ONLY_FULL_GROUP_BY;若包含,则执行以下命令:

SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

SET SESSION sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

执行完成后,再通过SELECT @@sql_mode; 来查看;
 

注意:该方法仅用于临时修改,重启mysql后,以上设置失效。

运行截图

代码相关

学生选课接口


  
  1. @RestController
  2. @RequestMapping("usercourse")
  3. @Api
  4. public class UserCourseController{
  5. @Autowired
  6. UserCourseService userCourseService;
  7. @Autowired
  8. SelectableCourseDAO selectableCourseDAO;
  9. /**
  10. * 选课
  11. * @param courseId
  12. * @param username
  13. * @return
  14. */
  15. @PostMapping("choose")
  16. @PreAuthorize("hasAuthority('student')")
  17. public Object chooseCourse (@RequestParam("courseId") Integer courseId ,
  18. @RequestParam("username") String username){
  19. Map<String,Object> map = new HashMap<>();
  20. try{
  21. return userCourseService.chooseCourse(courseId , username);
  22. } catch(Exception e){
  23. if(e instanceof DataIntegrityViolationException){
  24. map.put( "msg", "该课程已经被抢完啦。");
  25. } else{
  26. map.put( "msg", "出现其他异常,选课失败!");
  27. }
  28. map.put( "flag", false);
  29. return JSON.toJSON(map);
  30. }
  31. }
  32. /**
  33. * 退课
  34. * @param courseId
  35. * @param username
  36. * @return
  37. */
  38. @PostMapping("cancel")
  39. @PreAuthorize("hasAuthority('student')")
  40. public Object cancelCourse (@RequestParam("courseId") Integer courseId ,
  41. @RequestParam("username") String username){
  42. return userCourseService.cancelCourse(courseId,username);
  43. }
  44. /**
  45. * 获取学生所选全部课程
  46. * @param page
  47. * @param limit
  48. * @param username
  49. * @return
  50. */
  51. @PostMapping("studentInfo")
  52. @PreAuthorize("hasAuthority('admin') or hasAuthority('student')")
  53. public Object studentInfo (@RequestParam(value = "page", defaultValue = "1") int page ,
  54. @RequestParam(value = "limit", defaultValue = "10") int limit ,
  55. @RequestParam("username")String username){
  56. try{
  57. Map<String,Object> map = new HashMap<>();
  58. PageHelper.startPage(page , limit);
  59. List<SelectableCourse> list = selectableCourseDAO.selectByUser(username);
  60. if(list == null){
  61. return Msg.fail();
  62. }
  63. //System.out.println("=="+username+"==");
  64. PageInfo<SelectableCourse> pageInfo = new PageInfo<>(list);
  65. map.put( "totalPage" , pageInfo.getPages()); //总页数
  66. map.put( "totalCount" , pageInfo.getTotal()); //总条数
  67. map.put( "currentPage" , page); //当前页数。
  68. map.put( "data" , pageInfo.getList()); //获得的数据量
  69. map.put( "tCase",username);
  70. return JSON.toJSON(map);
  71. } catch(Exception e){
  72. e.printStackTrace();
  73. return Msg.fail();
  74. }
  75. }
  76. //测试。
  77. @PostMapping("cc")
  78. public Object cc (){
  79. Map<String,Object> map = new HashMap<>();
  80. try{
  81. selectableCourseDAO.updateMinCourseStock( 1);
  82. return true;
  83. } catch(Exception e){
  84. if(e instanceof DataIntegrityViolationException){
  85. map.put( "msg", "该课程已经被抢完啦。");
  86. } else{
  87. map.put( "msg", "出现其他异常,选课失败!");
  88. }
  89. map.put( "flag", false);
  90. return JSON.toJSON(map);
  91. }
  92. }
  93. }

 如果也想学习本系统,下面领取。回复:017springboot


转载:https://blog.csdn.net/m0_74967853/article/details/128402851
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场