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

基于SSM實(shí)現(xiàn)學(xué)生管理系統(tǒng)

 更新時(shí)間:2020年12月17日 15:46:51   作者:ztq666666  
這篇文章主要為大家詳細(xì)介紹了基于SSM實(shí)現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了SSM實(shí)現(xiàn)學(xué)生管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

概述

基于Spring + Spring MVC 的學(xué)生管理系統(tǒng),使用Maven進(jìn)行包管理。

主要代碼

@RequestMapping("/student")
@Controller
public class StudentController {
 
 @Autowired
 private StudentService studentService;
 @Autowired
 private ClazzService clazzService;
 /**
 * 學(xué)生列表頁(yè)
 * @param model
 * @return
 */
 @RequestMapping(value="/list",method=RequestMethod.GET)
 public ModelAndView list(ModelAndView model){
 model.setViewName("student/student_list");
 List<Clazz> clazzList = clazzService.findAll();
 model.addObject("clazzList",clazzList );
 model.addObject("clazzListJson",JSONArray.fromObject(clazzList));
 return model;
 }
 
 /**
 * 獲取學(xué)生列表
 * @param name
 * @param page
 * @return
 */
 @RequestMapping(value="/get_list",method=RequestMethod.POST)
 @ResponseBody
 public Map<String, Object> getList(
 @RequestParam(value="name",required=false,defaultValue="") String name,
 @RequestParam(value="clazzId",required=false) Long clazzId,
 HttpServletRequest request,
 Page page
 ){
 Map<String, Object> ret = new HashMap<String, Object>();
 Map<String, Object> queryMap = new HashMap<String, Object>();
 queryMap.put("username", "%"+name+"%");
 Object attribute = request.getSession().getAttribute("userType");
 if("2".equals(attribute.toString())){
 //說(shuō)明是學(xué)生
 Student loginedStudent = (Student)request.getSession().getAttribute("user");
 queryMap.put("username", "%"+loginedStudent.getUsername()+"%");
 }
 if(clazzId != null){
 queryMap.put("clazzId", clazzId);
 }
 queryMap.put("offset", page.getOffset());
 queryMap.put("pageSize", page.getRows());
 ret.put("rows", studentService.findList(queryMap));
 ret.put("total", studentService.getTotal(queryMap));
 return ret;
 }
 
 /**
 * 編輯學(xué)生信息
 * @param clazz
 * @return
 */
 @RequestMapping(value="/edit",method=RequestMethod.POST)
 @ResponseBody
 public Map<String, String> edit(Student student){
 Map<String, String> ret = new HashMap<String, String>();
 if(StringUtils.isEmpty(student.getUsername())){
 ret.put("type", "error");
 ret.put("msg", "學(xué)生姓名不能為空!");
 return ret;
 }
 if(StringUtils.isEmpty(student.getPassword())){
 ret.put("type", "error");
 ret.put("msg", "學(xué)生登錄密碼不能為空!");
 return ret;
 }
 if(student.getClazzId() == null){
 ret.put("type", "error");
 ret.put("msg", "請(qǐng)選擇所屬班級(jí)!");
 return ret;
 }
 if(isExist(student.getUsername(), student.getId())){
 ret.put("type", "error");
 ret.put("msg", "該姓名已存在!");
 return ret;
 }
 student.setSn(StringUtil.generateSn("S", ""));
 if(studentService.edit(student) <= 0){
 ret.put("type", "error");
 ret.put("msg", "學(xué)生添加失??!");
 return ret;
 }
 ret.put("type", "success");
 ret.put("msg", "學(xué)生修改成功!");
 return ret;
 }
 
 
 /**
 * 添加學(xué)生信息
 * @param student
 * @return
 */
 @RequestMapping(value="/add",method=RequestMethod.POST)
 @ResponseBody
 public Map<String, String> add(Student student){
 Map<String, String> ret = new HashMap<String, String>();
 if(StringUtils.isEmpty(student.getUsername())){
 ret.put("type", "error");
 ret.put("msg", "學(xué)生姓名不能為空!");
 return ret;
 }
 if(StringUtils.isEmpty(student.getPassword())){
 ret.put("type", "error");
 ret.put("msg", "學(xué)生登錄密碼不能為空!");
 return ret;
 }
 if(student.getClazzId() == null){
 ret.put("type", "error");
 ret.put("msg", "請(qǐng)選擇所屬班級(jí)!");
 return ret;
 }
 if(isExist(student.getUsername(), null)){
 ret.put("type", "error");
 ret.put("msg", "該姓名已存在!");
 return ret;
 }
 student.setSn(StringUtil.generateSn("S", ""));
 if(studentService.add(student) <= 0){
 ret.put("type", "error");
 ret.put("msg", "學(xué)生添加失??!");
 return ret;
 }
 ret.put("type", "success");
 ret.put("msg", "學(xué)生添加成功!");
 return ret;
 }
 
 /**
 * 刪除學(xué)生信息
 * @param ids
 * @return
 */
 @RequestMapping(value="/delete",method=RequestMethod.POST)
 @ResponseBody
 public Map<String, String> delete(
 @RequestParam(value="ids[]",required=true) Long[] ids
 ){
 Map<String, String> ret = new HashMap<String, String>();
 if(ids == null || ids.length == 0){
 ret.put("type", "error");
 ret.put("msg", "請(qǐng)選擇要?jiǎng)h除的數(shù)據(jù)!");
 return ret;
 }
 try {
 if(studentService.delete(StringUtil.joinString(Arrays.asList(ids), ",")) <= 0){
 ret.put("type", "error");
 ret.put("msg", "刪除失敗!");
 return ret;
 }
 } catch (Exception e) {
 // TODO: handle exception
 ret.put("type", "error");
 ret.put("msg", "該學(xué)生下存在其他信息,請(qǐng)勿沖動(dòng)!");
 return ret;
 }
 ret.put("type", "success");
 ret.put("msg", "學(xué)生刪除成功!");
 return ret;
 }
 
 /**
 * 上傳用戶頭像圖片
 * @param photo
 * @param request
 * @param response
 * @return
 * @throws IOException
 */
 @RequestMapping(value="/upload_photo",method=RequestMethod.POST)
 @ResponseBody
 public Map<String, String> uploadPhoto(MultipartFile photo,
 HttpServletRequest request,
 HttpServletResponse response
 ) throws IOException{
 Map<String, String> ret = new HashMap<String, String>();
 if(photo == null){
 //文件沒(méi)有選擇
 ret.put("type", "error");
 ret.put("msg", "請(qǐng)選擇文件!");
 return ret;
 }
 if(photo.getSize() > 10485760){
 //文件沒(méi)有選擇
 ret.put("type", "error");
 ret.put("msg", "文件大小超過(guò)10M,請(qǐng)上傳小于10M的圖片!");
 return ret;
 }
 String suffix = photo.getOriginalFilename().substring(photo.getOriginalFilename().lastIndexOf(".") + 1,photo.getOriginalFilename().length());
 if(!"jpg,png,gif,jpeg".contains(suffix.toLowerCase())){
 ret.put("type", "error");
 ret.put("msg", "文件格式不正確,請(qǐng)上傳jpg,png,gif,jpeg格式的圖片!");
 return ret;
 }
 String savePath = request.getServletContext().getRealPath("/") + "\\upload\\";
 System.out.println(savePath);
 File savePathFile = new File(savePath);
 if(!savePathFile.exists()){
 savePathFile.mkdir();//如果不存在,則創(chuàng)建一個(gè)文件夾upload
 }
 //把文件轉(zhuǎn)存到這個(gè)文件夾下
 String filename = new Date().getTime() + "." + suffix;
 photo.transferTo(new File(savePath + filename ));
 ret.put("type", "success");
 ret.put("msg", "圖片上傳成功!");
 ret.put("src", request.getServletContext().getContextPath() + "/upload/" + filename);
 return ret;
 }
 
 private boolean isExist(String username,Long id){
 Student student = studentService.findByUserName(username);
 if(student != null){
 if(id == null){
 return true;
 }
 if(student.getId().longValue() != id.longValue()){
 return true;
 }
 }
 return false;
 }
}

運(yùn)行配置

1、首先安裝Mysql5.7,設(shè)置用戶名為root,密碼為root,并保證其在運(yùn)行狀態(tài),并執(zhí)行sql文件導(dǎo)入數(shù)據(jù)。
2、然后再配置Maven到環(huán)境變量中,在源代碼目錄下運(yùn)行
3、使用瀏覽器訪問(wèn)http://localhost:8080即可進(jìn)入系統(tǒng)。

功能展示

1. 首頁(yè)登陸

2.2 管理

2.3 管理

2.4 管理

2.5 管理

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java 中使用maven shade plugin 打可執(zhí)行Jar包

    java 中使用maven shade plugin 打可執(zhí)行Jar包

    這篇文章主要介紹了java 中使用maven shade plugin 打可執(zhí)行Jar包的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • java迭代器和for循環(huán)優(yōu)劣詳解

    java迭代器和for循環(huán)優(yōu)劣詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于java迭代器和for循環(huán)優(yōu)劣詳解內(nèi)容,對(duì)此有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-01-01
  • 超實(shí)用的Java快捷鍵(總結(jié))

    超實(shí)用的Java快捷鍵(總結(jié))

    下面小編就為大家?guī)?lái)一篇超實(shí)用的Java快捷鍵(總結(jié))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Java線程創(chuàng)建與Thread類(lèi)的使用方法

    Java線程創(chuàng)建與Thread類(lèi)的使用方法

    這篇文章主要介紹了Java線程創(chuàng)建與Thread類(lèi)的使用方法,圍繞java多線程中Thread類(lèi)的使用以及有關(guān)線程對(duì)象創(chuàng)建和常用方法的相關(guān)資料展開(kāi)詳細(xì)內(nèi)容,具有一定的參考價(jià)值,需要的下伙伴可以參考一下
    2022-06-06
  • springBoot集成Elasticsearch 報(bào)錯(cuò) Health check failed的解決

    springBoot集成Elasticsearch 報(bào)錯(cuò) Health check failed的解決

    這篇文章主要介紹了springBoot集成Elasticsearch 報(bào)錯(cuò) Health check failed的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • servlet實(shí)現(xiàn)圖片上傳功能

    servlet實(shí)現(xiàn)圖片上傳功能

    這篇文章主要為大家詳細(xì)介紹了servlet實(shí)現(xiàn)圖片的上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 一文詳解如何在Java?Maven項(xiàng)目中使用JUnit?5進(jìn)行測(cè)試

    一文詳解如何在Java?Maven項(xiàng)目中使用JUnit?5進(jìn)行測(cè)試

    這篇文章主要介紹了如何在Java?Maven項(xiàng)目中使用JUnit?5進(jìn)行測(cè)試的相關(guān)資料,JUnit5是一個(gè)流行的Java測(cè)試框架,它涵蓋了JUnit5的概述、環(huán)境配置、編寫(xiě)測(cè)試用例、運(yùn)行測(cè)試、高級(jí)特性和最佳實(shí)踐,需要的朋友可以參考下
    2025-04-04
  • JetBrains IntelliJ IDEA 2020安裝與使用教程詳解

    JetBrains IntelliJ IDEA 2020安裝與使用教程詳解

    這篇文章主要介紹了JetBrains IntelliJ IDEA 2020安裝與使用教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • SpringBoot中@Import注解如何正確使用

    SpringBoot中@Import注解如何正確使用

    這篇文章主要介紹了SpringBoot中@Import注解的使用方式,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • IDEA如何搭建Struts2項(xiàng)目

    IDEA如何搭建Struts2項(xiàng)目

    這篇文章主要介紹了IDEA如何搭建Struts2項(xiàng)目,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-02-02

最新評(píng)論

承德县| 资阳市| 南召县| 朔州市| 全州县| 青岛市| 沾益县| 资阳市| 亚东县| 喀喇沁旗| 叙永县| 邹城市| 阿图什市| 沂源县| 湘潭市| 西充县| 灵璧县| 古田县| 宁阳县| 丰原市| 镇沅| 宁明县| 昭觉县| 伊春市| 若尔盖县| 塔河县| 洞口县| 青阳县| 抚顺市| 昭平县| 新乡县| 都匀市| 灯塔市| 九寨沟县| 盖州市| 涪陵区| 宁海县| 乌拉特中旗| 闽清县| 苍梧县| 尼勒克县|