当前位置: 首页 > 编程日记 > 正文

Java项目:学生选课系统(java+javaweb+jdbc)

源码获取:博客首页 "资源" 里下载!

功能介绍:

用户菜单、学生管理、教师管理、课程管理、成绩排名查询

学生管理控制层:

@Controller
@RequestMapping("/student")
public class StudentController {private static final String LIST = "student/list";@Autowiredprivate StudentService studentService;@Autowiredprivate SubjectService subjectService;@Autowiredprivate ClazzService clazzService;//跳转添加页面@GetMapping("/add")public String add(ModelMap modelMap) {//查询所有的专业,存储到request域List<Subject> subjects = subjectService.query(null);modelMap.addAttribute("subjects", subjects);return "student/add";}/*** 学生添加操作* @param student* @return*/@PostMapping("/add")@ResponseBodypublic Map<String, Object> add(@RequestBody Student student) {if(StringUtils.isEmpty(student.getStuName())){return MapControl.getInstance().error("请填写姓名").getMap();}if(StringUtils.isEmpty(student.getJoinDate())){return MapControl.getInstance().error("请填写入学时间").getMap();}if(StringUtils.isEmpty(student.getStuPwd())){return MapControl.getInstance().error("请填写密码").getMap();}if(StringUtils.isEmpty(student.getCardNo())){return MapControl.getInstance().error("请填写身份证号").getMap();}if(StringUtils.isEmpty(student.getPhone())){return MapControl.getInstance().error("请填写手机号码").getMap();}Integer maxId = studentService.maxId();if(maxId==null){maxId=0;}student.setStuNo(StringUtil.randomNumber("",maxId));//设置学生的状态student.setStatus(Student.StatusType.type_1);int result = studentService.create(student);if (result <= 0) {return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}//根据id查询@PostMapping("/delete/{id}")@ResponseBodypublic Map<String, Object> delete(@PathVariable("id") Integer id) {int result = studentService.delete(id);if (result <= 0) {return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}//删除操作@PostMapping("/delete")@ResponseBodypublic Map<String, Object> delete(String ids) {int result = studentService.delete(ids);if (result <= 0) {return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}/*** 学生修改操作* @param student* @return*/@PostMapping("/edit")@ResponseBodypublic Map<String, Object> edit(@RequestBody Student student) {if(StringUtils.isEmpty(student.getStuName())){return MapControl.getInstance().error("请填写姓名").getMap();}if(StringUtils.isEmpty(student.getJoinDate())){return MapControl.getInstance().error("请填写入学时间").getMap();}if(StringUtils.isEmpty(student.getCardNo())){return MapControl.getInstance().error("请填写身份证号").getMap();}if(StringUtils.isEmpty(student.getPhone())){return MapControl.getInstance().error("请填写手机号码").getMap();}int result = studentService.saveU(student);if (result <= 0) {return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}//根据id查询,跳转修改页面@GetMapping("/edit/{id}")public String detail(@PathVariable("id") Integer id, ModelMap modelMap) {//查询出要修改的学生的信息Student student = studentService.detail(id);//查询所有的专业List<Subject> subjects = subjectService.query(null);//将查询出来的数据存储到request域,实现表单回显modelMap.addAttribute("student", student);modelMap.addAttribute("subjects", subjects);return "student/edit";}//查询所有@PostMapping("/query")@ResponseBodypublic Map<String, Object> query(@RequestBody Student student) {//查询所有的学生信息List<Student> list = studentService.query(student);//查询所有的专业List<Subject> subjects = subjectService.query(null);//查询所有的班级List<Clazz> clazzes = clazzService.query(null);//设置关联list.forEach(entity -> {subjects.forEach(subject -> {//判断学生表中的subjectId和专业表的id是否一致if (subject.getId() == entity.getSubjectId()) {entity.setSubject(subject);}});clazzes.forEach(clazz -> {//判断学生表中的clazzId和班级表的id是否一致if (clazz.getId() == entity.getClazzId()) {entity.setClazz(clazz);}});});//查询总记录条数Integer count = studentService.count(student);return MapControl.getInstance().success().page(list, count).getMap();}//跳转列表页面@GetMapping("/list")public String list() {return "student/list";}//跳转查询学生页面@GetMapping("/teacher_student")public String teacher_student(ModelMap modelMap, HttpSession session) {//查询所有的专业List<Subject> subjects = subjectService.query(null);//查询所有的班级List<Clazz> clazzes = clazzService.query(null);Teacher teacher = (Teacher) session.getAttribute("user");modelMap.addAttribute("subjects", subjects);modelMap.addAttribute("clazzes", clazzes);modelMap.addAttribute("teacher", teacher);return "student/teacher_student";}//老师查询学生@PostMapping("/teacher_student")@ResponseBodypublic Map<String, Object> teacher_student(Integer clazzId, Integer subjectId, ModelMap modelMap, HttpSession session) {Teacher teacher = (Teacher) session.getAttribute("user");List<Student> students = studentService.queryStudentByTeacher(teacher.getId(), clazzId, subjectId);List<Subject> subjects = subjectService.query(null);List<Clazz> clazzes = clazzService.query(null);//设置关联students.forEach(entity -> {subjects.forEach(subject -> {//判断学生表的subjectId和专业表的id是否一致if (subject.getId() == entity.getSubjectId()) {entity.setSubject(subject);}});clazzes.forEach(clazz -> {//判断学生表的clazzId和班级表的id是否一致if (clazz.getId() == entity.getClazzId()) {entity.setClazz(clazz);}});});return MapControl.getInstance().success().add("data", students).getMap();}
}

用户管理操作:

/*** 用户管理操作*/
@Controller
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;/*** 用户添加页面* @return*/@GetMapping("/add")public String create() {return "user/add";}/*** 用户添加操作* @param user* @return*/@PostMapping("/add")@ResponseBodypublic Map<String, Object> add(@RequestBody User user) {if(StringUtils.isEmpty(user.getUserName())){return MapControl.getInstance().error("请填写用户名").getMap();}if(StringUtils.isEmpty(user.getName())){return MapControl.getInstance().error("请填写名称").getMap();}if(StringUtils.isEmpty(user.getUserPwd())){return MapControl.getInstance().error("请填写密码").getMap();}int result = userService.create(user);if (result <= 0) {return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}/*** 根据id删除* @param id* @return*/@PostMapping("/delete/{id}")@ResponseBodypublic Map<String, Object> delete(@PathVariable("id") Integer id) {int result = userService.delete(id);if (result <= 0) {return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}//批量删除@PostMapping("/delete")@ResponseBodypublic Map<String, Object> delete(String ids) {int result = userService.delete(ids);if (result <= 0) {return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}/*** 编辑用户信息操作* @param user* @return*/@PostMapping("/edit")@ResponseBodypublic Map<String, Object> edit(@RequestBody User user) {if(StringUtils.isEmpty(user.getUserName())){return MapControl.getInstance().error("请填写用户名").getMap();}if(StringUtils.isEmpty(user.getName())){return MapControl.getInstance().error("请填写名称").getMap();}if(StringUtils.isEmpty(user.getUserPwd())){return MapControl.getInstance().error("请填写密码").getMap();}int result = userService.update(user);if (result <= 0) {return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}/*** 根据id查询,跳转修改页面* @param id* @param modelMap* @return*/@GetMapping("/edit/{id}")public String edit(@PathVariable("id") Integer id, ModelMap modelMap) {User user = userService.detail(id);modelMap.addAttribute("user", user);return "user/edit";}//查询所有@PostMapping("/query")@ResponseBodypublic Map<String, Object> query(@RequestBody User user) {List<User> list = userService.query(user);Integer count = userService.count(user);return MapControl.getInstance().success().page(list, count).getMap();}//跳转列表页面@GetMapping("/list")public String list() {return "user/list";}}

登录控制层:

@Controller
public class LoginController {@Autowiredprivate UserService userService;@Autowiredprivate TeacherService teacherService;@Autowiredprivate StudentService studentService;//跳转登录页面@GetMapping("/login")public String login() {return "login";}//登录操作@PostMapping("/login")@ResponseBodypublic Map<String, Object> login(String userName, String password, String captcha, String type, HttpSession session) {//判断用户名、密码、用户类型、验证码是否为空if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(password) || StringUtils.isEmpty(captcha) || StringUtils.isEmpty(type)) {return MapControl.getInstance().error("用户名或密码不能为空").getMap();}//获取系统生成的验证码String _captcha = (String) session.getAttribute("captcha");//先判断验证码是否正确if (!(captcha.toLowerCase()).equals(_captcha.toLowerCase())) {//验证码错误return MapControl.getInstance().error("验证码错误").getMap();}//判断用户类型if ("1".equals(type)) { //管理员验证登录User user = userService.login(userName, MD5Utils.getMD5(password)); //对密码进行加密处理,因为数据库中存储的是加密后的密码if (user != null) {session.setAttribute("user", user);session.setAttribute("type", 1);return MapControl.getInstance().success().add("data", user).getMap();} else {return MapControl.getInstance().error("用户名或密码错误").getMap();}}if ("2".equals(type)) { //老师验证登录Teacher teacher = teacherService.login(userName, MD5Utils.getMD5(password));if (teacher != null) {session.setAttribute("user", teacher);session.setAttribute("type", "2");return MapControl.getInstance().success().add("data", teacher).getMap();} else {return MapControl.getInstance().error("用户名或密码错误").getMap();}}if ("3".equals(type)) { //学生验证登录Student student = studentService.login(userName, MD5Utils.getMD5(password));if (student != null) {session.setAttribute("user", student);session.setAttribute("type", "3");return MapControl.getInstance().success().add("data", student).getMap();} else {return MapControl.getInstance().error("用户名或密码错误").getMap();}}return MapControl.getInstance().getMap();}}

源码获取:博客首页 "资源" 里下载!

相关文章:

Xtrabackup对mysql全备以及增量备份实施

Xtrabackup对mysql全备以及增量备份实施1.完全备份与恢复本文使用的是centos5.8 64位系统&#xff0c;mysql 使用5.5.35.如果要使用一个最小权限的用户进行备份&#xff0c;可基于以下&#xff1a;mysql> createuser bkuserlocalhost identified by redhat;mysql> grant …

js浅拷贝和深拷贝

浅度拷贝&#xff1a;复制一层对象的属性&#xff0c;并不包括对象里面的为引用类型的数据&#xff0c;当改变拷贝的对象里面的引用类型时&#xff0c;源对象也会改变。 深度拷贝&#xff1a;重新开辟一个内存空间&#xff0c;需要递归拷贝对象里的引用&#xff0c;直到子属性都…

关于 fallocate 文件系统预分配 的一些细粒度测试

文章目录Rocksdb 中的预分配Fallocate in rocksdb 性能测试Fallocate 使用 以及 对应配置的行为API 使用不同 Mode 的行为分配磁盘空间释放磁盘空间折叠/裁剪 文件内容清零文件 扩容文件Rocksdb 中的预分配 预分配文件存储空间 在存储引擎中用的还是比较频繁的&#xff0c;尤…

mac 使用nvm安装node

1.curl https://raw.github.com/creationix/nvm/master/install.sh | sh2。vi ~/.bash_profile 添加&#xff1a;source /Users/dujie/.nvm/nvm.sh nvm install 0.10.24 nvm use 0.10.24 # 默認使用 0.10.24 版本&#xff0c;否則每次關掉 Terminal 就得重新 nvm use 一次 $…

Java项目:人事管理系统(java+javaweb+jdbc)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能介绍&#xff1a; 登录、新增、修改、离职 员工管理控制层&#xff1a; Controller RequestMapping("/employee") public class EmployeeController {Autowiredprivate IEmployeeService em…

转:async await 的前世今生 ; 异步 线程 多线程

写的非常好,改天搬过来

ubuntu14.04初体会

2014年4月17日ubuntu新的长期支持版14.04公布了&#xff0c;中国时间18日一早就能够下载到。18日晚。在我的X200上安装上了14.04&#xff0c;算是比較早一批体会到14.04正式版的人吧。对照12.04&#xff0c;14.04提升的执行速度非常明显&#xff0c;界面改善也是令人眼前一亮&a…

Linux 下获取本机所有网卡 以及 网卡对应ip 列表

简单record 一下 #include <arpa/inet.h> // struct sockaddr_in #include <errno.h> #include <net/if.h> // struct ifreq and struct if_nameindex #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/i…

Java项目:植物大战僵尸(java+swing)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能简介&#xff1a; 植物大战僵尸、冒险模式、生存模式、解谜模式 小车服务类&#xff1a; public class CarThread extends Thread{private boolean flagtrue;private int x;private int y;private JL…

秋实大哥の恋爱物语

//裸kmp&#xff0c;劳资居然不会写&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 题意&#xff1a;中文题面自己看 解&#xff1a;差分裸kmp 因为可以上下移动&#xff0c;所以只要变化趋势相符就行&#xff0c;于是我们先做一个差分&#xff0c…

《马哥出品高薪linux运维教程》wingkeung学习笔记-linux基础入门课程5

命令&#xff1a;内部命令&#xff1a;由shell程序自带的命令叫做内部命令&#xff1b;外部命令&#xff1a;在系统的某个路径下&#xff0c;有一个与命令同名的可执行程序叫做外部命令。查看内外部命令的命令&#xff1a;type 命令命令选项&#xff1a;用于调整命令执行行为的…

八、LaTex中的表格

转载于:https://www.cnblogs.com/invisible2/p/10813964.html

基于持久内存的 单机上亿(128B)QPS -- 持久化 k/v 存储引擎

文章目录性能数据设计背景设计架构Hash 索引结构 及 PMEM空间管理形态基本API 及 实现API初始化流程写流程读流程删除流程PMEM Allocator设计主要组件空间分配流程空间释放图数据库 on KVDK 性能性能数据 这个kv 存储引擎是持久化的存储引擎&#xff0c;存储介质是PMEM&#x…

SCALA当的trait

不是特别懂&#xff0c;但感觉和RUBY当中的MIX-IN功能有几分相似&#xff0c;这又扯到了多重继承及JAVA当中的接口虚拟类了。。 package com.hengheng.scalaclass UseTrait {} trait Logger {def log(msg : String) {println("log : " msg)} } trait ConsoleLogger …

Java项目:贪吃蛇游戏(java+swing)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能简介&#xff1a; 贪吃蛇游戏 大嘴鱼洁面类。完成大嘴鱼的界面的绘制: /*** 大嘴鱼洁面类。完成大嘴鱼的界面的绘制。*/ public class BigMouthFishFrame extends JFrame{private FishPool pool null;…

使用Ext Form自动绑定Html中的Form元素

2019独角兽企业重金招聘Python工程师标准>>> Java代码 //把ext 对象绑定在Html Form元素时的ext属性中 Ext.override(Ext.Component, { initComponent :function(){ this.on(render, function(){ if(this.el) Ext.getDom(this.el).ext this; …

Directx11 教程(2) 基本的windows应用程序框架(2)

Directx11 教程(2) 基本的windows应用程序框架(2) 原文:Directx11 教程(2) 基本的windows应用程序框架(2)在本教程中&#xff0c;我们把前面一个教程的代码&#xff0c;进行封装。把初始化函数&#xff0c;Run函数&#xff0c;窗口回调函数&#xff0c;ShutdownWindows函数等封…

Rocksdb的事务(二):完整事务体系的 详细实现

文章目录1. 基本事务操作1.1 TransactionDB -- Pessimistic1.2 OptimisticTransactionDB1.3 Read Uncommitted1.4 SavePoint 回滚部分事务操作1.5 SetSnapshot1.6 GetForUpdate1.7 RepeatableRead2. 实现2.1 WBWI(write batch with index) & WB(write batch)2.2 Pessimisti…

关于学习编程的一些看法

1、看书&#xff0c;书上的代码一串一串的对吧&#xff1f;是不是很不好记&#xff1f;是不是觉得如果自己把这些代码都敲一遍很浪费时间&#xff1f;其实对于一些完全没有任何基础的人来说&#xff0c;全部敲一遍不失为一种简单的入门方法。对于有一点基础的人来说&#xff0c…

Java项目:日历万年历(java+swing)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能简介&#xff1a; 万年历 启动类&#xff1a; public class CalendarMainClass { public static void main(String args[]) { try { UIManager.setLookAndFeel("com.sun.java.swing.pl…

求大神给解释一下H3C ospf 双塔奇兵

转载于:https://blog.51cto.com/2807200/1364566

活着是为了什么?

活着是为了死亡&#xff0c;死亡才是完美&#xff0c;才是永恒。 死亡时将一无所有&#xff0c;所以活着不是为了能带走什么&#xff0c;而应该是能留下什么&#xff0c;这才是人活着的意义&#xff0c;多少人能想明白呢&#xff1f; 胡建龙转载于:https://www.cnblogs.com/hjl…

XFS 文件系统 (一) :设计概览

文章目录0 前言1 设计背景2. 需要解决的问题2.1 异常恢复太慢2.2 不支持大文件系统2.3 不支持大型稀疏文件2.4 不支持大型连续文件2.5 不支持大目录2.6 不支持过多文件个数3 XFS 架构4 痛点解决4.1 Allocation Groups4.2 Manging Free Space4.3 大文件的支持5 总结0 前言 虽然…

WebApi2官网学习记录---异常处理

HttpResponseException 当WebAPI的控制器抛出一个未捕获的异常时&#xff0c;默认情况下&#xff0c;大多数异常被转为status code为500的http response即服务端错误。 HttpResonseException是一个特别的情况&#xff0c;这个异常可以返回任意指定的http status code&#xff0…

Java项目:资源下载工具(java+swing)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能简介&#xff1a; 下载地址、保存位置、下载设置、下载进度 文件仓库控制器&#xff1a; /*** ClassName: FileStoreController* Description: 文件仓库控制器**/ Controller public class FileStoreC…

江南Style之---西湖

西湖古称“钱塘湖”&#xff0c;又名“西子湖”&#xff0c;古代诗人苏轼就对它评价道&#xff1a;“欲把西湖比西子&#xff0c;淡妆浓抹总相宜。西湖&#xff0c;是一首诗&#xff0c;一幅天然图画&#xff0c;一个美丽动人的故事&#xff0c;不论是多年居住在这里的人还是匆…

mimikatz

下载后&#xff0c;在目标机直接运行 常用命令&#xff1a; 提升权限&#xff1a;privilege::debug 获取用户登录明文账号密码&#xff1a;sekurlsa::logonPasswords 获取用户密码hash值&#xff1a;lsadump::sam 转载于:https://www.cnblogs.com/xiaoqiyue/p/10824169.html

通过 RDTSC 指令从 CPU 寄存器中直接获取系统时钟

很多时候我们使用函数 gettimeofday 以及 clock_gettime 作为我们获取 wall lock的时钟函数。 因为这两种函数是 glibc 提供的用户封装&#xff0c;简单易用&#xff0c;而且能够精确到 ns&#xff0c;对于大多数的时钟需求场景都已经够用了。 但是如果 我们的应用 调用时钟频…

Java项目:星际争霸游戏(java+swing+awt界面编程+IO输入输出流+socket+udp网络通信)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能简介&#xff1a; 星际争霸游戏项目&#xff0c;该项目实现了单人模式和多人合作模式&#xff0c;可记录游戏进度&#xff0c;新建游戏&#xff0c;载入历史记录等功能&#xff0c;多人模式下可以创建一…

GTONE清理维护建议方案

1、日志清理/home/gtone/AppGov/analyzer/log//home/gtone/AppGov/analyzer/SRC/temp//home/gtone/AppGov/WAS/logs/ 2、扩容现有磁盘空间至200GB转载于:https://www.cnblogs.com/arcer/p/4461018.html