最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 實(shí)戰(zhàn)項(xiàng)目之畢業(yè)設(shè)計(jì)管理系統(tǒng)的實(shí)現(xiàn)流程

 更新時(shí)間:2021年11月20日 16:13:36   作者:qq_1334611189  
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實(shí)現(xiàn)畢業(yè)設(shè)計(jì)管理系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平

一、項(xiàng)目簡述

功能包括: 該系統(tǒng)不錯分為學(xué)生,教師,管理員,教導(dǎo)主任四種角 色,包括學(xué)生管理,教師管理,學(xué)生選題,教師選題,主 任審核,管理員審核,開題報(bào)告,中期檢查,論文提交, 文件管理等等非常不錯。

二、項(xiàng)目運(yùn)行

環(huán)境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

項(xiàng)目技術(shù): JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。

用戶管理操作控制層:

/**
 * 用戶管理操作
 */
@Controller
@RequestMapping("/user")
public class UserController {
 
    @Autowired
    private UserService userService;
 
    /**
     * 用戶添加頁面
     * @return
     */
    @GetMapping("/add")
    public String create() {
        return "user/add";
    }
 
    /**
     * 用戶添加操作
     * @param user
     * @return
     */
    @PostMapping("/add")
    @ResponseBody
    public Map<String, Object> add(@RequestBody User user) {
        if(StringUtils.isEmpty(user.getUserName())){
            return MapControl.getInstance().error("請?zhí)顚懹脩裘?).getMap();
        }
        if(StringUtils.isEmpty(user.getName())){
            return MapControl.getInstance().error("請?zhí)顚懨Q").getMap();
        }
        if(StringUtils.isEmpty(user.getUserPwd())){
            return MapControl.getInstance().error("請?zhí)顚懨艽a").getMap();
        }
        int result = userService.create(user);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }
 
    /**
     * 根據(jù)id刪除
     * @param id
     * @return
     */
    @PostMapping("/delete/{id}")
    @ResponseBody
    public 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")
    @ResponseBody
    public 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")
    @ResponseBody
    public Map<String, Object> edit(@RequestBody User user) {
        if(StringUtils.isEmpty(user.getUserName())){
            return MapControl.getInstance().error("請?zhí)顚懹脩裘?).getMap();
        }
        if(StringUtils.isEmpty(user.getName())){
            return MapControl.getInstance().error("請?zhí)顚懨Q").getMap();
        }
        if(StringUtils.isEmpty(user.getUserPwd())){
            return MapControl.getInstance().error("請?zhí)顚懨艽a").getMap();
        }
        int result = userService.update(user);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }
 
    /**
     * 根據(jù)id查詢,跳轉(zhuǎn)修改頁面
     * @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")
    @ResponseBody
    public 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();
    }
 
    //跳轉(zhuǎn)列表頁面
    @GetMapping("/list")
    public String list() {
        return "user/list";
    }
 
}

跳轉(zhuǎn)首頁判斷以及數(shù)據(jù)展示圖表:

@Controller
public class IndexController {
 
    @Autowired
    UserService userService;
    @Autowired
    TeacherService teacherService;
    @Autowired
    StudentService studentService;
    @Autowired
    ClazzService clazzService;
    @Autowired
    SubjectService subjectService;
    @Autowired
    CourseService courseService;
    @Autowired
    SectionService sectionService;
    @Autowired
    ScoreService scoreService;
 
    //跳轉(zhuǎn)系統(tǒng)主頁
    @GetMapping("/index")
    public String login() {
        return "index";
    }
 
    //跳轉(zhuǎn)用戶基本信息頁面
    @GetMapping("/info")
    public String info() {
        return "info";
    }
 
    //跳轉(zhuǎn)修改密碼頁面
    @GetMapping("/pwd")
    public String pwd() {
        return "pwd";
    }
 
    //修改密碼 根據(jù)舊密碼來修改密碼
    @PostMapping("/pwd")
    @ResponseBody
    public Map<String,Object> pwd(String sourcePwd,String newPwd,String type,Integer id) {
        //先判斷類型
        if("1".equals(type)) {
            User user = userService.detail(id);
            //比較原密碼是否相同 注意:原密碼也要加密后再進(jìn)行比較,因?yàn)閿?shù)據(jù)庫中存儲的是加密后的密碼
            if(user.getUserPwd().equals(MD5Utils.getMD5(sourcePwd))) {
                User entity = new User();
                entity.setId(id);
                entity.setUserPwd(MD5Utils.getMD5(newPwd)); //主要要加密
                int result = userService.update(entity);
                if(result <= 0) {
                    return MapControl.getInstance().error().getMap();
                } else {
                    return MapControl.getInstance().success().getMap();
                }
            } else {
                return MapControl.getInstance().error("原密碼錯誤").getMap();
            }
        }
        if("2".equals(type)) {
            Teacher teacher = teacherService.detail(id);
            //比較原密碼
            if(teacher.getTeacherPwd().equals(MD5Utils.getMD5(sourcePwd))) {
                Teacher entity = new Teacher();
                entity.setId(id);
                entity.setTeacherPwd(MD5Utils.getMD5(newPwd));
                int result = teacherService.update(entity);
                if(result <= 0) {
                    return MapControl.getInstance().error().getMap();
                } else {
                    return MapControl.getInstance().success().getMap();
                }
            } else {
                return MapControl.getInstance().error("原密碼錯誤").getMap();
            }
        }
        if("3".equals(type)) {
            Student student = studentService.detail(id);
            //比較原密碼
            if(student.getStuPwd().equals(MD5Utils.getMD5(sourcePwd))) {
                Student entity = new Student();
                entity.setId(id);
                entity.setStuPwd(MD5Utils.getMD5(newPwd));
                int result = studentService.update(entity);
                if(result <= 0) {
                    return MapControl.getInstance().error().getMap();
                } else {
                    return MapControl.getInstance().success().getMap();
                }
            } else {
                return MapControl.getInstance().error("原密碼錯誤").getMap();
            }
        }
 
        return MapControl.getInstance().error().getMap();
    }
 
    //跳轉(zhuǎn)系統(tǒng)主頁(數(shù)據(jù)概覽)
    @GetMapping("/main")
    public String main(ModelMap modelMap) {
        //1.系統(tǒng)數(shù)據(jù)概覽
        List<Clazz> clazzes = clazzService.query(null);
        List<Subject> subjects = subjectService.query(null);
        List<Teacher> teachers = teacherService.query(null);
        List<Course> courses = courseService.query(null);
        List<Section> sections = sectionService.query(null);
        List<Student> students = studentService.query(null);
        modelMap.addAttribute("clazzCnt",clazzes.size());
        modelMap.addAttribute("subjectCnt",subjects.size());
        modelMap.addAttribute("teacherCnt",teachers.size());
        modelMap.addAttribute("courseCnt",courses.size());
        modelMap.addAttribute("studentCnt",students.size());
        modelMap.addAttribute("sectionCnt",sections.size());
 
        //2.班級學(xué)生數(shù)量
        List<Map<String,Object>> mapList = new ArrayList<>();
        for(Clazz clazz : clazzes) {
            Map<String,Object> map = new HashMap<>();
            map.put("name",clazz.getClazzName()); //設(shè)置班級名稱
            int cnt = 0;
            //統(tǒng)計(jì)學(xué)生數(shù)量
            for(Student student : students) {
                if(student.getClazzId() == clazz.getId()) {
                    cnt++;
                }
            }
            map.put("cnt",cnt); //設(shè)置學(xué)生數(shù)量
            mapList.add(map);
        }
        modelMap.addAttribute("mapList",mapList);
 
        //3.查詢各科平均成績(根據(jù)專業(yè)查詢各科平均成績)
        List<HashMap> mapList2 = scoreService.queryAvgScoreBySection();
        modelMap.addAttribute("mapList2",mapList2);
 
        return "main";
    }
 
}

公告管理控制器:

/**
 * 公告管理控制器
 */
@Controller
@RequestMapping("/notice")
public class NoticeController {
 
 
    @Autowired
    private NoticeService noticeService;
 
    //跳轉(zhuǎn)添加頁面
    @GetMapping("/add")
    public String add() {
        return "notice/add";
    }
 
    /**
     * 公告添加
     * @param notice
     * @return
     */
    @PostMapping("/add")
    @ResponseBody
    public Map<String, Object> add(Notice notice, HttpServletRequest request) {
        if(StringUtils.isEmpty(notice.getTitle())){
            return MapControl.getInstance().error("請?zhí)顚懝鏄?biāo)題").getMap();
        }
        if(StringUtils.isEmpty(notice.getContent())){
            return MapControl.getInstance().error("請?zhí)顚懝鎯?nèi)容").getMap();
        }
        User user = (User) request.getSession().getAttribute("user");
        notice.setAuthor(user.getUserName());
        notice.setAuth("1");
        int result = noticeService.create(notice);
        if (result <= 0) {
            //新增失敗
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }
 
    //根據(jù)id刪除
    @PostMapping("/delete/{id}")
    @ResponseBody
    public Map<String, Object> delete(@PathVariable("id") Integer id) {
        int result = noticeService.delete(id);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }
 
    //批量刪除
    @PostMapping("/delete")
    @ResponseBody
    public Map<String, Object> delete(String ids) {
        int result = noticeService.delete(ids);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }
 
    /**
     * 修改公告操作
     * @param notice
     * @return
     */
    @PostMapping("/edit")
    @ResponseBody
    public Map<String, Object> edit(@RequestBody Notice notice) {
        if(StringUtils.isEmpty(notice.getTitle())){
            return MapControl.getInstance().error("請?zhí)顚懝鏄?biāo)題").getMap();
        }
        if(StringUtils.isEmpty(notice.getContent())){
            return MapControl.getInstance().error("請?zhí)顚懝鎯?nèi)容").getMap();
        }
        int result = noticeService.update(notice);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }
 
    //根據(jù)id查詢,跳轉(zhuǎn)修改頁面
    @GetMapping("/edit/{id}")
    public String edit(@PathVariable Integer id, ModelMap modelMap) {
        //查詢要修改的老師
        Notice notice = noticeService.detail(id);
        modelMap.addAttribute("notice", notice);
        return "notice/edit";
    }
    //根據(jù)id查詢,跳轉(zhuǎn)添加頁面
    @GetMapping("/look/{id}")
    public String look(@PathVariable Integer id, ModelMap modelMap) {
        Notice notice = noticeService.detail(id);
        modelMap.addAttribute("notice", notice);
        return "notice/look";
    }
 
    //查詢所有
    @PostMapping("/query")
    @ResponseBody
    public Map<String, Object> query(@RequestBody Notice notice) {
        List<Notice> list = noticeService.query(notice);
        Integer count = noticeService.count(notice);
        return MapControl.getInstance().success().put("data", list).put("count", count).getMap();
    }
 
    //跳轉(zhuǎn)列表頁面
    @GetMapping("/list")
    public String list() {
        return "notice/list";
    }
}

登陸用戶判斷業(yè)務(wù)控制層:

@Controller
public class LoginController {
 
    @Autowired
    private UserService userService;
    @Autowired
    private TeacherService teacherService;
    @Autowired
    private StudentService studentService;
 
    //跳轉(zhuǎn)登錄頁面
    @GetMapping("/login")
    public String login() {
        return "login";
    }
 
    //登錄操作
    @PostMapping("/login")
    @ResponseBody
    public Map<String, Object> login(String userName, String password, String captcha, String type, HttpSession session) {
        //判斷用戶名、密碼、用戶類型、驗(yàn)證碼是否為空
        if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(password) || StringUtils.isEmpty(captcha) || StringUtils.isEmpty(type)) {
            return MapControl.getInstance().error("用戶名或密碼不能為空").getMap();
        }
        //獲取系統(tǒng)生成的驗(yàn)證碼
        String _captcha = (String) session.getAttribute("captcha");
        //先判斷驗(yàn)證碼是否正確
        if (!(captcha.toLowerCase()).equals(_captcha.toLowerCase())) {
            //驗(yàn)證碼錯誤
            return MapControl.getInstance().error("驗(yàn)證碼錯誤").getMap();
        }
 
        //判斷用戶類型
        if ("1".equals(type)) { //管理員驗(yàn)證登錄
            User user = userService.login(userName, MD5Utils.getMD5(password)); //對密碼進(jìn)行加密處理,因?yàn)閿?shù)據(jù)庫中存儲的是加密后的密碼
            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)) { //老師驗(yàn)證登錄
            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)) { //學(xué)生驗(yàn)證登錄
            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();
    }
 
}

到此這篇關(guān)于Java 實(shí)戰(zhàn)項(xiàng)目之畢業(yè)設(shè)計(jì)管理系統(tǒng)的實(shí)現(xiàn)流程的文章就介紹到這了,更多相關(guān)Java 畢業(yè)設(shè)計(jì)管理系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中Arrays的介紹及使用方法示例

    Java中Arrays的介紹及使用方法示例

    這篇文章主要給大家介紹了關(guān)于Java中Arrays及使用方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java與Node.js利用AES加密解密出相同結(jié)果的方法示例

    Java與Node.js利用AES加密解密出相同結(jié)果的方法示例

    這篇文章主要介紹了Java與Node.js利用AES加密解密出相同結(jié)果的方法,文中給出了詳細(xì)的示例代碼,相信對大家的學(xué)習(xí)或者工作能帶來一定的幫助,需要的朋友們下面來一起看看吧。
    2017-02-02
  • Java中兩種拋出異常的方式示例詳解

    Java中兩種拋出異常的方式示例詳解

    在Java中有兩種拋出異常的方式,一種是throw,直接拋出異常,另一種是throws,間接拋出異常,本文給大家詳細(xì)說明java中兩種拋出異常的方式,感興趣的朋友一起看看吧
    2023-08-08
  • SpringBoot使用classfinal-maven-plugin插件加密Jar包的示例代碼

    SpringBoot使用classfinal-maven-plugin插件加密Jar包的示例代碼

    這篇文章給大家介紹了SpringBoot使用classfinal-maven-plugin插件加密Jar包的實(shí)例,文中通過代碼示例和圖文講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • Spring自定義注解配置簡單日志示例

    Spring自定義注解配置簡單日志示例

    這篇文章主要介紹了Spring自定義注解配置簡單日志示例,注解可以增強(qiáng)我們的java代碼,同時(shí)利用反射技術(shù)可以擴(kuò)充實(shí)現(xiàn)很多功能,它們被廣泛應(yīng)用于三大框架底層,需要的朋友可以參考下
    2023-05-05
  • 使用MyBatis 動態(tài)update數(shù)據(jù)

    使用MyBatis 動態(tài)update數(shù)據(jù)

    使用mybatis寫sql,需要動態(tài)更新對象數(shù)據(jù),每次需要更新的字段不同,為了防止null空異常,就需要用動態(tài)sql了,下面給大家分享一段代碼關(guān)于mybatis動態(tài)update,需要的朋友參考下
    2016-11-11
  • Java控制結(jié)構(gòu)知識點(diǎn)詳解

    Java控制結(jié)構(gòu)知識點(diǎn)詳解

    在本篇文章里小編給大家分享的是關(guān)于Java控制結(jié)構(gòu)知識點(diǎn)詳解,有需要的朋友們可以參考下。
    2019-10-10
  • 淺析RxJava處理復(fù)雜表單驗(yàn)證問題的方法

    淺析RxJava處理復(fù)雜表單驗(yàn)證問題的方法

    這篇文章主要介紹了RxJava處理復(fù)雜表單驗(yàn)證問題的相關(guān)資料,非常不錯具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • Spring?boot?集成?MQTT詳情

    Spring?boot?集成?MQTT詳情

    這篇文章主要介紹了Spring?boot?集成?MQTT詳情,MQTT是一種基于發(fā)布/訂閱模式的"輕量級"通訊協(xié)議,可以以極少的代碼和有限的帶寬為連接遠(yuǎn)程設(shè)備提供實(shí)時(shí)可靠的消息服,下文更多相關(guān)介紹,需要的小伙伴可以參考一下
    2022-04-04
  • 如何解決@NotBlank不生效的問題

    如何解決@NotBlank不生效的問題

    這篇文章主要介紹了如何解決@NotBlank不生效的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論

山阳县| 平谷区| 离岛区| 布尔津县| 临朐县| 樟树市| 滦南县| 绥德县| 清徐县| 龙胜| 凌海市| 广饶县| 青岛市| 闸北区| 冷水江市| 阳原县| 永胜县| 镇沅| 祁东县| 汉川市| 蚌埠市| 新民市| 自治县| 乐安县| 河曲县| 黎川县| 中牟县| 长阳| 上饶县| 桐城市| 湘潭县| 五莲县| 云南省| 锦州市| 华容县| 绥芬河市| 广灵县| 杂多县| 临高县| 武强县| 广平县|