• Java项目:ssm酒店管理系统


    作者主页:夜未央5788

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

    文末获取源码

    酒店管理系统-温情小筑后台管理系统

    系统概要

    项目主要功能包括:
    住客管理:住客入住、住客列表;
    房间管理:房间列表、添加房间、修改房间状态;
    会员管理:新增会员、会员列表;
    系统设置:网站信息、修改密码、清除缓存;
    数据表:生成Excel并导出等功能,适合java新手学习;

    由于本程序规模不大,可供课程设计,毕业设计学习演示之用

    更多项目源码,请到“源码空间站”,地址:http://www.shuyue.fun/

    技术选型

    1.后台技术选型:SSM(Spring SpringMVC Mybatis)

    2.前端技术选型:LayUI

    开发环境

    1.编程语言:Java
    2.开发工具:IDEA/Eclipse、Navicat
    3.项目构建:Maven 3.5.2
    4.服务器:Tomcat 8.0及以上

    5.数据库:MySQL5.7

    使用说明

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

    运行

    导入项目并运行成功后,在tomcat路径中设置为/,注意路径中不要带有项目名,否则会导致项目运行异常;

    运行截图

     

     

     

     

     

     

     

     

    相关代码 

    AdminController

    1. package com.hotel.controller;
    2. import com.hotel.pojo.Admin;
    3. import com.hotel.service.AdminServiceImpl;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.stereotype.Controller;
    6. import org.springframework.web.bind.annotation.RequestMapping;
    7. @Controller
    8. @RequestMapping("/admin")
    9. public class AdminController {
    10. @Autowired
    11. AdminServiceImpl adminService;
    12. @RequestMapping("/login")
    13. public String login(String username, int password){
    14. Admin admin=adminService.findAdmin(username,password );
    15. if(admin!=null){
    16. if(admin.getPassword()==password){
    17. return "index";
    18. }else {
    19. return "error";
    20. }
    21. }
    22. return "error";
    23. }
    24. @RequestMapping("/updatePwd")
    25. public String update(Admin admin){
    26. adminService.updatePwd(admin);
    27. System.out.println(admin);
    28. return "suc_a";
    29. }
    30. }

    ExcelController

    1. package com.hotel.controller;
    2. import com.hotel.pojo.Home;
    3. import com.hotel.pojo.Vip;
    4. import com.hotel.service.HomeServiceImpl;
    5. import com.hotel.service.VipServiceImpl;
    6. import org.apache.poi.hssf.usermodel.HSSFRow;
    7. import org.apache.poi.hssf.usermodel.HSSFSheet;
    8. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    9. import org.springframework.beans.factory.annotation.Autowired;
    10. import org.springframework.stereotype.Controller;
    11. import org.springframework.web.bind.annotation.RequestMapping;
    12. import javax.servlet.http.HttpServletResponse;
    13. import java.io.IOException;
    14. import java.io.OutputStream;
    15. import java.util.List;
    16. @Controller
    17. @RequestMapping("/excel")
    18. public class ExcelController {
    19. @Autowired
    20. HomeServiceImpl homeService;
    21. @Autowired
    22. VipServiceImpl vipService;
    23. @RequestMapping("/home")
    24. public void excel_home(HttpServletResponse response )throws IOException {
    25. response.setCharacterEncoding("UTF-8");
    26. List homeList=homeService.queryAllHome();
    27. //创建excel文件
    28. HSSFWorkbook wb = new HSSFWorkbook();
    29. //创建sheet页
    30. HSSFSheet sheet = wb.createSheet("房间信息");
    31. //创建标题行
    32. HSSFRow titleRow = sheet.createRow(0);
    33. titleRow.createCell(0).setCellValue("编号");
    34. titleRow.createCell(1).setCellValue("房间号");
    35. titleRow.createCell(2).setCellValue("房间类型");
    36. titleRow.createCell(3).setCellValue("价格");
    37. titleRow.createCell(4).setCellValue("状态");
    38. titleRow.createCell(5).setCellValue("描述");
    39. //获取需要下载表对应的pojo类
    40. for(Home home:homeList){
    41. HSSFRow dataRow = sheet.createRow(sheet.getLastRowNum()+1);
    42. dataRow.createCell(0).setCellValue(home.getId());
    43. dataRow.createCell(1).setCellValue(home.getNum());
    44. dataRow.createCell(2).setCellValue(home.getH_Type());
    45. dataRow.createCell(3).setCellValue(home.getPrice());
    46. dataRow.createCell(4).setCellValue(home.getState());
    47. dataRow.createCell(5).setCellValue(home.getText());
    48. }
    49. // 设置下载时客户端Excel的名称
    50. response.setContentType("application/octet-stream;charset=utf-8");
    51. response.setHeader("Content-Disposition", "attachment;filename="
    52. + new String("房间信息表".getBytes(),"iso-8859-1") + ".xls");
    53. OutputStream ouputStream = response.getOutputStream();
    54. wb.write(ouputStream);
    55. ouputStream.flush();
    56. ouputStream.close();
    57. }
    58. @RequestMapping("/vip")
    59. public void excel_vip(HttpServletResponse response )throws IOException {
    60. response.setCharacterEncoding("UTF-8");
    61. List vipList=vipService.queryAllVip();
    62. //创建excel文件
    63. HSSFWorkbook wb = new HSSFWorkbook();
    64. //创建sheet页
    65. HSSFSheet sheet = wb.createSheet("会员信息");
    66. //创建标题行
    67. HSSFRow titleRow = sheet.createRow(0);
    68. titleRow.createCell(0).setCellValue("编号");
    69. titleRow.createCell(1).setCellValue("姓名");
    70. titleRow.createCell(2).setCellValue("性别");
    71. titleRow.createCell(3).setCellValue("身份证号");
    72. titleRow.createCell(4).setCellValue("手机号");
    73. titleRow.createCell(5).setCellValue("会员类型");
    74. titleRow.createCell(6).setCellValue("开通时间");
    75. titleRow.createCell(7).setCellValue("到期时间");
    76. for(Vip vip:vipList){
    77. HSSFRow dataRow = sheet.createRow(sheet.getLastRowNum()+1);
    78. dataRow.createCell(0).setCellValue(vip.getId());
    79. dataRow.createCell(1).setCellValue(vip.getName());
    80. dataRow.createCell(2).setCellValue(vip.getSex());
    81. dataRow.createCell(3).setCellValue(vip.getCard());
    82. dataRow.createCell(4).setCellValue(vip.getPhone());
    83. dataRow.createCell(5).setCellValue(vip.getV_Type());
    84. dataRow.createCell(6).setCellValue(vip.getStartTime());
    85. dataRow.createCell(7).setCellValue(vip.getEndTime());
    86. }
    87. // 设置下载时客户端Excel的名称
    88. response.setContentType("application/octet-stream;charset=utf-8");
    89. response.setHeader("Content-Disposition", "attachment;filename="
    90. + new String("客户会员名单".getBytes(),"iso-8859-1") + ".xls");
    91. OutputStream ouputStream = response.getOutputStream();
    92. wb.write(ouputStream);
    93. ouputStream.flush();
    94. ouputStream.close();
    95. }
    96. }

    GuestsController

    1. package com.hotel.controller;
    2. import com.hotel.pojo.Guests;
    3. import com.hotel.service.GuestsServiceImpl;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.stereotype.Controller;
    6. import org.springframework.web.bind.annotation.RequestMapping;
    7. import org.springframework.web.servlet.ModelAndView;
    8. import java.util.ArrayList;
    9. import java.util.List;
    10. @Controller
    11. @RequestMapping("/guests")
    12. public class GuestsController {
    13. @Autowired
    14. GuestsServiceImpl guestsService;
    15. @RequestMapping("/add")
    16. public ModelAndView add(Guests guests){
    17. ModelAndView mv = new ModelAndView();
    18. guestsService.addGuests(guests);
    19. mv.setViewName("suc_g");
    20. return mv;
    21. }
    22. @RequestMapping("/delete")
    23. public String delete(int id){
    24. guestsService.deleteGuestsById(id);
    25. return "redirect:/guests/list";
    26. }
    27. @RequestMapping("/list")
    28. public ModelAndView list(){
    29. ModelAndView mv = new ModelAndView();
    30. List guestsList=guestsService.queryAllGuests();
    31. mv.addObject("list",guestsList);
    32. mv.setViewName("guests_list");
    33. return mv;
    34. }
    35. @RequestMapping("/update1")
    36. public ModelAndView update1(int id){
    37. ModelAndView mv = new ModelAndView();
    38. Guests guests = guestsService.queryGuestsById(id);
    39. mv.addObject("g",guests);
    40. mv.setViewName("guests_update");
    41. return mv;
    42. }
    43. @RequestMapping("/update2")
    44. public String update2(Guests g ){
    45. guestsService.updateGuestsById(g);
    46. return ("redirect:/guests/list");
    47. }
    48. @RequestMapping("/find")
    49. public ModelAndView find(String findByPhone){
    50. ModelAndView mv = new ModelAndView();
    51. Guests guests = guestsService.queryGuestsByPhone(findByPhone);
    52. List guestsList=new ArrayList();
    53. guestsList.add(guests);
    54. if (guests==null){
    55. guestsList=guestsService.queryAllGuests();
    56. mv.addObject("error","未查询出结果");
    57. }
    58. mv.addObject("list",guestsList);
    59. mv.setViewName("guests_list");
    60. return mv;
    61. }
    62. }

    HomeController

    1. package com.hotel.controller;
    2. import com.hotel.pojo.Home;
    3. import com.hotel.service.HomeServiceImpl;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.stereotype.Controller;
    6. import org.springframework.ui.Model;
    7. import org.springframework.web.bind.annotation.RequestMapping;
    8. import org.springframework.web.servlet.ModelAndView;
    9. import java.io.*;
    10. import java.util.ArrayList;
    11. import java.util.List;
    12. import java.util.UUID;
    13. @Controller
    14. @RequestMapping("/home")
    15. public class HomeController {
    16. @Autowired
    17. HomeServiceImpl homeService;
    18. @RequestMapping("/add")
    19. public String add(Home home, Model model) throws IOException{
    20. String sqlPath = null;
    21. //定义文件保存的本地路径
    22. // String localPath="/DownLoad/";
    23. String localPath="/Users/admin/Desktop/log/";
    24. //定义 文件名
    25. String filename=null;
    26. if(!home.getFile().isEmpty()){
    27. //生成uuid作为文件名称
    28. String uuid = UUID.randomUUID().toString().replaceAll("-","");
    29. //获得文件类型(可以判断如果不是图片,禁止上传)
    30. String contentType=home.getFile().getContentType();
    31. //获得文件后缀名
    32. String suffixName=contentType.substring(contentType.indexOf("/")+1);
    33. //得到 文件名
    34. filename=uuid+"."+suffixName;
    35. System.out.println(filename);
    36. //文件保存路径
    37. home.getFile().transferTo(new File(localPath+filename));
    38. }
    39. //把图片的相对路径保存至数据库
    40. sqlPath = "/upload/"+filename;
    41. System.out.println(sqlPath);
    42. home.setImg(sqlPath);
    43. homeService.addHome(home);
    44. model.addAttribute("home",home);
    45. return "home_show";
    46. }
    47. @RequestMapping("/delete")
    48. public String delete(Integer id){
    49. homeService.deleteHomeById(id);
    50. return "redirect:/home/list";
    51. }
    52. @RequestMapping("/list")
    53. public ModelAndView list(){
    54. ModelAndView mv = new ModelAndView();
    55. List homeList=homeService.queryAllHome();
    56. mv.addObject("list",homeList);
    57. mv.setViewName("home_list");
    58. return mv;
    59. }
    60. @RequestMapping("/update1")
    61. public ModelAndView update1(Integer id){
    62. ModelAndView mv = new ModelAndView();
    63. Home home = homeService.queryHomeById(id);
    64. mv.addObject("h",home);
    65. mv.setViewName("home_update");
    66. return mv;
    67. }
    68. @RequestMapping("/update2")
    69. public String update2(Home h)throws IOException{
    70. String sqlPath = null;
    71. //定义文件保存的本地路径
    72. // String localPath="/Download/";
    73. String localPath="/Users/admin/Desktop/log/";
    74. //定义 文件名
    75. String filename=null;
    76. if(!h.getFile().isEmpty()){
    77. //生成uuid作为文件名称
    78. String uuid = UUID.randomUUID().toString().replaceAll("-","");
    79. //获得文件类型(可以判断如果不是图片,禁止上传)
    80. String contentType=h.getFile().getContentType();
    81. //获得文件后缀名
    82. String suffixName=contentType.substring(contentType.indexOf("/")+1);
    83. //得到 文件名
    84. filename=uuid+"."+suffixName;
    85. System.out.println(filename);
    86. //文件保存路径
    87. h.getFile().transferTo(new File(localPath+filename));
    88. }
    89. //把图片的相对路径保存至数据库
    90. sqlPath = "/upload/"+filename;
    91. System.out.println(sqlPath);
    92. h.setImg(sqlPath);
    93. homeService.updateHomeById(h);
    94. return ("redirect:/home/list");
    95. }
    96. @RequestMapping("/show")
    97. public ModelAndView show(Integer id){
    98. ModelAndView mv = new ModelAndView();
    99. Home home=homeService.queryHomeById(id);
    100. mv.addObject("home",home);
    101. mv.setViewName("home_show");
    102. return mv;
    103. }
    104. @RequestMapping("/find")
    105. public ModelAndView find(int findByNum ){
    106. ModelAndView mv = new ModelAndView();
    107. Home home = homeService.queryHomeByNum(findByNum);
    108. List homeList=new ArrayList();
    109. homeList.add(home);
    110. if (home==null){
    111. homeList=homeService.queryAllHome();
    112. mv.addObject("error","未查询出结果");
    113. }
    114. mv.addObject("list",homeList);
    115. mv.setViewName("home_list");
    116. return mv;
    117. }
    118. @RequestMapping("/type1")
    119. public String type1(Integer id,Model model){
    120. Home home = homeService.queryHomeById(id);
    121. model.addAttribute("h",home);
    122. return "H_Type_update";
    123. }
    124. @RequestMapping("/type2")
    125. public String type2(Home home){
    126. homeService.updateH_TypeById(home);
    127. return "redirect:/home/list";
    128. }
    129. }

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

  • 相关阅读:
    Springboot集成redis
    自定义类型:结构体,枚举,联合
    代码Bug太多?给新人Code Review头都大了?快来试试SpotBugs
    Linux——(第五章)用户管理
    AIGC Midjourney 机器人绘画案例演示
    golang设计模式——享元模式
    Vue3中watch用法
    温馨浪漫HTML表白爱情源码大气简洁单页源码(html生日快乐网站制作)
    查看网卡速率脚本
    lwip_网卡
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/126798147