• Java项目:SSM在线宿舍管理系统


    作者主页:夜未央5788

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

    文末获取源码

    项目介绍

    本项目包含管理员、宿舍管理员、学生三种角色;

    管理员角色包含以下功能:

    管理员登录,院系管理,专业管理,年级管理,班级管理,学生设置,宿舍管理员管理,宿舍楼管理,宿舍管理,床位管理,学生入住登记,学生退房管理等功能。

    宿舍管理员角色包含以下功能:
    宿舍管理员管理,宿舍楼管理,宿舍管理,床位管理,入住登记,退房管理,个人信息修改等功能。

    学生角色包含以下功能:

    学生角色登录,我入住的床位,个人信息修改等功能。

    环境需要

    1.运行环境:java jdk 1.7,注:该项目仅支持jdk1.7,不支持1.8及以上版本;
    2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
    3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
    4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 

    5.数据库:MySql 5.7版本;

    6.是否Maven项目:否;

    技术栈

    1. 后端:Spring+SpringMVC+Mybatis

    2. 前端:JSP+CSS+JavaScript+bootstrap+jquery

    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
    2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
    若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
    3. 将项目中config/jdbc.properties配置文件中的数据库配置改为自己的配置;

    4. 运行项目,输入http://localhost:8080/ 登录

    ## 注意事项
    该项目仅支持jdk1.7,不支持1.8及以上版本;

    运行截图

    相关代码 

    Controller基类

    1. package com.my.xymh.base;
    2. import net.sf.json.JSONArray;
    3. import net.sf.json.JSONObject;
    4. import net.sf.json.JsonConfig;
    5. import org.slf4j.Logger;
    6. import org.slf4j.LoggerFactory;
    7. import com.my.xymh.utils.HttpConstants;
    8. import com.my.xymh.utils.JsonDateValueProcessor;
    9. import java.io.Serializable;
    10. import java.util.Collection;
    11. import java.util.Date;
    12. import java.util.Map;
    13. import java.util.Set;
    14. /**
    15. * Controller基类
    16. */
    17. public class BaseController {
    18. protected Logger logger = LoggerFactory.getLogger(this.getClass());
    19. protected final static String DATE_FORMATE = "yyyy-MM-dd";
    20. /**
    21. * 返回服务端处理结果
    22. *
    23. * @param obj
    24. * 服务端输出对象
    25. * @return 输出处理结果给前段JSON格式数据
    26. */
    27. public String responseResult(Object obj) {
    28. JSONObject jsonObj = null;
    29. if (obj != null) {
    30. logger.info("后端返回对象:{}", obj);
    31. JsonConfig jsonConfig = new JsonConfig();
    32. jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
    33. jsonObj = JSONObject.fromObject(obj, jsonConfig);
    34. logger.info("后端返回数据:" + jsonObj);
    35. }
    36. logger.info("输出结果:{}", jsonObj.toString());
    37. return jsonObj.toString();
    38. }
    39. /**
    40. * 返回成功
    41. *
    42. * @param obj
    43. * 输出对象
    44. * @return 输出成功的JSON格式数据
    45. */
    46. public String responseSuccess(Object obj) {
    47. JSONObject jsonObj = null;
    48. if (obj != null) {
    49. logger.info("后端返回对象:{}", obj);
    50. JsonConfig jsonConfig = new JsonConfig();
    51. jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
    52. jsonObj = JSONObject.fromObject(obj, jsonConfig);
    53. }
    54. logger.info("输出结果:{}", jsonObj.toString());
    55. return jsonObj.toString();
    56. }
    57. /**
    58. * 返回成功
    59. *
    60. * @param obj
    61. * 输出对象
    62. * @return 输出成功的JSON格式数据
    63. */
    64. public String responseArraySuccess(Object obj) {
    65. JSONArray jsonObj = null;
    66. if (obj != null) {
    67. logger.info("后端返回对象:{}", obj);
    68. JsonConfig jsonConfig = new JsonConfig();
    69. jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
    70. jsonObj = JSONArray.fromObject(obj, jsonConfig);
    71. logger.info("后端返回数据:" + jsonObj);
    72. }
    73. logger.info("输出结果:{}", jsonObj.toString());
    74. return jsonObj.toString();
    75. }
    76. /**
    77. * 返回成功
    78. *
    79. * @param obj
    80. * 输出对象
    81. * @return 输出成功的JSON格式数据
    82. */
    83. public String responseSuccess(Object obj, String msg) {
    84. JSONObject jsonObj = null;
    85. JSONObject jsonObj2 = null;
    86. if (obj != null) {
    87. logger.info("后端返回对象:{}", obj);
    88. JsonConfig jsonConfig = new JsonConfig();
    89. //jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
    90. jsonObj = JSONObject.fromObject(obj);
    91. jsonObj2 = new JSONObject();
    92. jsonObj2.put("datas", jsonObj);
    93. jsonObj2.put("message", msg);
    94. logger.info("后端返回数据:" + jsonObj2);
    95. }
    96. logger.info("输出结果:{}", jsonObj2.toString());
    97. return jsonObj2.toString();
    98. }
    99. /**
    100. * 返回失败
    101. *
    102. * @param errorMsg
    103. * 错误信息
    104. * @return 输出失败的JSON格式数据
    105. */
    106. public String responseFail(String errorMsg) {
    107. JSONObject jsonObj = new JSONObject();
    108. jsonObj.put(HttpConstants.RESPONSE_RESULT_FLAG_ISERROR, true);
    109. jsonObj.put(HttpConstants.SERVICE_RESPONSE_RESULT_MSG, errorMsg);
    110. logger.info("输出结果:{}", jsonObj.toString());
    111. return jsonObj.toString();
    112. }
    113. // 下面是判断null的操作
    114. public boolean isEmpty(String str) {
    115. return (null == str) || (str.trim().length() <= 0);
    116. }
    117. public boolean isEmpty(Character cha) {
    118. return (null == cha) || cha.equals(' ');
    119. }
    120. public boolean isEmpty(Object obj) {
    121. return (null == obj);
    122. }
    123. public boolean isEmpty(Object[] objs) {
    124. return (null == objs) || (objs.length <= 0);
    125. }
    126. public boolean isEmpty(Collection obj) {
    127. return (null == obj) || obj.isEmpty();
    128. }
    129. public boolean isEmpty(Set set) {
    130. return (null == set) || set.isEmpty();
    131. }
    132. public boolean isEmpty(Serializable obj) {
    133. return null == obj;
    134. }
    135. public boolean isEmpty(Map map) {
    136. return (null == map) || map.isEmpty();
    137. }
    138. }

    CollegeController

    1. package com.my.xymh.controller;
    2. import java.io.File;
    3. import java.util.Date;
    4. import java.util.HashMap;
    5. import java.util.List;
    6. import java.util.Map;
    7. import java.util.UUID;
    8. import javax.servlet.http.HttpServletRequest;
    9. import javax.servlet.http.HttpServletResponse;
    10. import net.sf.json.JSONObject;
    11. import org.springframework.beans.factory.annotation.Autowired;
    12. import org.springframework.stereotype.Controller;
    13. import org.springframework.ui.Model;
    14. import org.springframework.web.bind.annotation.RequestMapping;
    15. import org.springframework.web.bind.annotation.RequestMethod;
    16. import org.springframework.web.bind.annotation.RequestParam;
    17. import org.springframework.web.bind.annotation.ResponseBody;
    18. import org.springframework.web.multipart.MultipartFile;
    19. import org.springframework.web.multipart.commons.CommonsMultipartFile;
    20. import com.my.xymh.base.BaseController;
    21. import com.my.xymh.entity.College;
    22. import com.my.xymh.service.CollegeService;
    23. import com.my.xymh.utils.JsonUtil2;
    24. import com.my.xymh.utils.Pager;
    25. /**
    26. * @ClassName:
    27. * @Description:
    28. * @author administrator
    29. * @date - 2017年02月18日 12时25分56秒
    30. */
    31. @Controller
    32. @RequestMapping("/college")
    33. public class CollegeController extends BaseController {
    34. /**
    35. * 依赖注入 start dao/service/===
    36. */
    37. @Autowired
    38. private CollegeService collegeService;
    39. // --------------------------------------- 华丽分割线 ------------------------------
    40. /**
    41. * 分页查询 返回list对象(通过对象)
    42. *
    43. * @param request
    44. * @param response
    45. * @return
    46. */
    47. @RequestMapping(value = "/findByObj.do")
    48. public String findByObj(College college, Model model, HttpServletRequest request, HttpServletResponse response) {
    49. List list = collegeService.listAllByEntity(college);
    50. model.addAttribute("list", list);
    51. //分页查询
    52. /*Pager pagers = collegeService.findByEntity(college);
    53. model.addAttribute("pagers", pagers);*/
    54. //存储查询条件
    55. model.addAttribute("obj", college);
    56. return "college/college";
    57. }
    58. /**
    59. * 分页查询 返回list对象(通过Map)
    60. *
    61. * @param request
    62. * @param response
    63. * @return
    64. */
    65. @RequestMapping(value = "/findByMap.do")
    66. public String findByMap(College college, Model model, HttpServletRequest request, HttpServletResponse response) {
    67. //通过map查询
    68. Map params = new HashMap();
    69. if(!isEmpty(college.getName())){
    70. params.put("content", college.getName());
    71. }
    72. /*if(!isEmpty(college.getAddUserId())){
    73. params.put("addUserId", college.getAddUserId());
    74. }*/
    75. //分页查询
    76. Pager pagers = collegeService.findByMap(params);
    77. model.addAttribute("pagers", pagers);
    78. //存储查询条件
    79. model.addAttribute("obj", college);
    80. return "college/college";
    81. }
    82. /**
    83. * 跳至添加页面
    84. * @return
    85. */
    86. @RequestMapping(value = "/add.do")
    87. public String add() {
    88. return "college/add";
    89. }
    90. /**
    91. * 添加执行
    92. * @return
    93. */
    94. @RequestMapping(value = "/exAdd.do")
    95. public String manageMain(College college,Integer id,HttpServletRequest request){
    96. String uuid = UUID.randomUUID().toString().replaceAll("-", "");//生成唯一主键
    97. college.setId(uuid);
    98. collegeService.insert(college);
    99. return "redirect:/college/findByObj.do";
    100. }
    101. /**
    102. * 跳至修改页面
    103. * @return
    104. */
    105. @RequestMapping(value = "/update.do")
    106. public String update(String id,Model model) {
    107. College obj = collegeService.load(id);
    108. model.addAttribute("obj",obj);
    109. return "college/update";
    110. }
    111. /**
    112. * 添加修改
    113. * @return
    114. */
    115. @RequestMapping(value = "/exUpdate.do")
    116. public String exUpdate(College college, Model model, HttpServletRequest request, HttpServletResponse response) {
    117. collegeService.update(college);
    118. return "redirect:/college/findByObj.do";
    119. }
    120. /**
    121. * 删除通过主键
    122. * @return
    123. */
    124. @RequestMapping(value = "/delete.do")
    125. public String delete(String id, Model model, HttpServletRequest request, HttpServletResponse response) {
    126. //真正删除
    127. collegeService.deleteById(id);
    128. return "redirect:/college/findByObj.do";
    129. }
    130. // --------------------------------------- 华丽分割线 ------------------------------
    131. /**
    132. * 分页查询 返回list json(通过对象)
    133. *
    134. * @param request
    135. * @param response
    136. * @return
    137. */
    138. @RequestMapping(value = "/findByObj.json", method = RequestMethod.GET)
    139. @ResponseBody
    140. public String findByObjByEntity(College college, Model model, HttpServletRequest request, HttpServletResponse response) {
    141. //分页查询
    142. Pager pagers = collegeService.findByEntity(college);
    143. JSONObject jsonObject = JsonUtil2.getJsonObject();
    144. jsonObject.put("pagers", pagers);
    145. jsonObject.put("obj", college);
    146. return jsonObject.toString();
    147. }
    148. /**
    149. * 分页查询 返回list json(通过Map)
    150. *
    151. * @param request
    152. * @param response
    153. * @return
    154. */
    155. @RequestMapping(value = "/findByMap.json", method = RequestMethod.GET)
    156. @ResponseBody
    157. public String findByMapMap(College college, Model model, HttpServletRequest request, HttpServletResponse response) {
    158. //通过map查询
    159. Map params = new HashMap();
    160. if(!isEmpty(college.getName())){
    161. params.put("content", college.getName());
    162. }
    163. //分页查询
    164. Pager pagers = collegeService.findByMap(params);
    165. JSONObject jsonObject = JsonUtil2.getJsonObject();
    166. jsonObject.put("pagers", pagers);
    167. jsonObject.put("obj", college);
    168. return jsonObject.toString();
    169. }
    170. /**
    171. * ajax 添加
    172. * @param
    173. * @return
    174. */
    175. @RequestMapping(value = "/exAdd.json", method = RequestMethod.POST)
    176. @ResponseBody
    177. public String exAddJson(College college, Model model, HttpServletRequest request, HttpServletResponse response) {
    178. collegeService.insert(college);
    179. JSONObject jsonObject = JsonUtil2.getJsonObject();
    180. jsonObject.put("message", "添加成功");
    181. return jsonObject.toString();
    182. }
    183. /**
    184. * ajax 修改
    185. * @param
    186. * @return
    187. */
    188. @RequestMapping(value = "/exUpdate.json",method = RequestMethod.POST)
    189. @ResponseBody
    190. public String exUpdateJson(College college, Model model, HttpServletRequest request, HttpServletResponse response) {
    191. collegeService.update(college);
    192. JSONObject jsonObject = JsonUtil2.getJsonObject();
    193. jsonObject.put("message", "修改成功");
    194. return jsonObject.toString();
    195. }
    196. /**
    197. * ajax 删除
    198. * @return
    199. */
    200. @RequestMapping(value = "/delete.json", produces = "text/html;charset=UTF-8", method = RequestMethod.GET)
    201. @ResponseBody
    202. public String exDeleteJson(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
    203. //真正删除
    204. collegeService.deleteById(id);
    205. //通过参数删除
    206. //Map params = new HashMap();
    207. //params.put("id", id);
    208. //collegeService.deleteBySqId("deleteBySql", params);
    209. //状态删除
    210. //College load = collegeService.load(id);
    211. //load.setIsDelete(1);
    212. //collegeService.update(load);
    213. JSONObject jsonObject = JsonUtil2.getJsonObject();
    214. jsonObject.put("message", "删除成功");
    215. return jsonObject.toString();
    216. }
    217. /**
    218. * 单文件上传
    219. * @param file
    220. * @param request
    221. * @param model
    222. * @return
    223. */
    224. @RequestMapping(value = "/saveFile")
    225. public String saveFile(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, Model model) {
    226. System.out.println("开始");
    227. String path = request.getSession().getServletContext().getRealPath("/upload");
    228. String fileName = file.getOriginalFilename();
    229. System.out.println(path);
    230. File targetFile = new File(path, fileName);
    231. if(!targetFile.exists()){
    232. targetFile.mkdirs();
    233. }
    234. //保存
    235. try {
    236. file.transferTo(targetFile);
    237. } catch (Exception e) {
    238. e.printStackTrace();
    239. }
    240. return "";
    241. }
    242. }

    如果也想学习本系统,下面领取。关注并回复:078ssm 

  • 相关阅读:
    GA-RPN:引导锚点的建议区域网络
    Fiddle日常运用手册(2)-使用过滤器进行接口精准拦截
    PostgreSQL heap堆表 存储引擎实现原理
    微服务07-认识MQ+RabbitMQ入门
    【Python百日进阶-数据分析】Day326 - plotly.express.scatter_geo():地理散点图
    数据存储——存储图像
    深入学习git
    C语言—自定义(构造)类型
    095:vue+openlayers 地图上添加网格线 (示例代码)
    Ubuntu20.04配置CUDA+CUDNN深度学习环境
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/126685277