博主简介:目前专注于大学生项目实战开发,Java定制、代码讲解、毕业答疑辅导以及调试部署、文档报告。全网粉丝8w+,CSDN特邀作者,上市公司架构师,Java新星计划应届导师,多平台领域优质原创作者!
💕💕文末获取源码联系💕💕
精彩专栏推荐订阅,不然下次找不到哦👇🏻👇🏻👇🏻👇🏻
Java项目精品实战案例《100套》
小程序项目精品实战案例《100套》
Python项目精品实战案例《100套》
javaweb酒店管理系统-系统前言介绍
- 近几年随着社会的发展,各地旅客数量不断增加,酒店数量也随之增加,导致酒店客房的管理方面的各种信息量也在不断成倍增长,因此,传统的酒店信息管理方式暴露出越来越多的问题,耗费人力,效率低下。这时,酒店就急需各种各样能使酒店工作人员对庞大的信息量进行更快更方便更准确进行管理的系统。
- 在互联网技术无处不在的今天,人们的生活已经离不开计算机,利用计算机及互联网进行工作、学习乃至购物。例如:人们去外地旅游或出差,通常会根据自己的需求选择在网上事先预订好客房,大大节约了找房的时间。此时,酒店就需要相应的客房预定管理系统对客房和预订信息进行管理,提高酒店的管理水平,简化各种复杂的操作,在最短的时间内完成客户预定的任务,这样才能令客户有个舒适的消费体验,增加顾客的回头率。
- 对于客房数量较多的酒店来说,利用一套酒店预定管理系统来管理客房信息和预订信息显得尤为重要,这个系统不仅方便了客户进行预订,同时也方便了工作人员,大大节省了时间。所以开发一个酒店预定管理系统是很有必要的。
开发技术与环境
-
开发技术:语言【Java 】、框架【后端:javaweb、servlet,前端:jsp、html+css+js】、数据库【mysql】
-
开发环境:jdk1.8、Tomcat8.5、Mysql5.7,IDEA(Eclipse、MyEclipse )选其一
需求分析-数据库分析
1个角色:管理员。主要功能就是增删改查
管理员:个人中心、管理员管理、客房管理、住宿记录、结账管理等。
- 开发技术:
管理员(主键,用户名,密码,角色,创建时间,姓名)
客房(主键,房间号,容纳人数,房内设施,介绍,价格)
住宿记录(主键,房间号,类型,客人名称,身份证,金额)
结账(主键,客人名称,实收价格,创建时间)
管理员表
字段名 字段 数据类型 约束 描述
主键 id varchar(40) primary key; 唯一标识
用户名 username varchar(20) not null;unique; 不可为空;字段唯一;
密码 password varchar(20)
角色 role varchar(18) not null; “admin”
创建时间 createtime datetime not null; new Date()
姓名 name varchar(12) not null; 不可为空;
客房表
字段名 字段 数据类型 约束 描述
主键 id varchar(40) primary key; 唯一标识
房间号 name varchar(18) not null;unique; 不可为空;字段唯一;
容纳人数 count int not null; 不可为空;
房内设施 equipment varchar(255)
介绍 jieshao varchar(255)
价格 price float not null; 不可为空;
住宿记录表
字段名 字段 数据类型 约束 描述
主键 id varchar(40) primary key; 唯一标识
房间号 roomId varchar(255)
类型 type varchar(255)
客人名称 name varchar(255)
身份证 idnum varchar(18) not null; 不可为空;
金额 price float
结账表
字段名 字段 数据类型 约束 描述
主键 id varchar(40) primary key; 唯一标识
客人名称 name varchar(255)
实收价格 price float not null; 不可为空;
创建时间 createtime datetime not null; new Date()
系统截图
1、管理员端:
💟个人中心💟
💟管理员管理💟
💟客房管理💟
💟住宿记录💟
💟结账管理💟
代码展示
1.登录代码【代码如下(示例):】
/**
* 用于登陆的Servlet
*/
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private SqlSession sqlSession;
//查询数据mapper
private AdminDao adminDao;
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
//校验验证码
String captchaOrigin = (String) req.getSession().getAttribute("captcha");
String captchaCode = req.getParameter("captcha");
if(captchaCode == null || !captchaCode.equalsIgnoreCase(captchaOrigin)){
req.setAttribute("message","验证码错误!");
// req.setAttribute("username",req.getParameter("username"));
// req.setAttribute("password",req.getParameter("password"));
req.getRequestDispatcher("/login.jsp").forward(req,resp);
return;
}
//登录开始
sqlSession = JdbcUtils.getSession();
req.setCharacterEncoding("utf-8");
//登陆的用户
LoginUser loginUser;
String username = req.getParameter("username");
String password = req.getParameter("password");
String usertype = req.getParameter("usertype");
if(usertype.equals("admin")) {
Admin admin =new Admin ();
admin .setUsername(username);
admin .setPassword(password);
QueryWrapper<Admin> wrapperAdmin = new QueryWrapper();
wrapperAdmin .eq("username", username).eq("password", password);
adminDao =sqlSession.getMapper(AdminDao .class);
loginUser = adminDao .selectOne(wrapperAdmin);
if (loginUser != null) {
sqlSession.close();
req.getSession().setAttribute("user", loginUser);
req.getSession().setAttribute("role", "admin");
resp.sendRedirect(req.getContextPath() + "/hello.jsp");
return;
}
}
sqlSession.close();
//登陆失败,就重新登陆
req.setAttribute("message","账号密码有误,登陆失败");
req.getRequestDispatcher("/login.jsp").forward(req,resp);
}
}
2.房间管理【代码如下(示例):】
/**
* 查询客房
*/
@WebServlet("/room/list")
public class ListRoomServlet extends HttpServlet {
private SqlSession sqlSession;
//查询数据mapper
private RoomDao roomDao;
//查询外键数据的mapper
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
sqlSession = JdbcUtils.getSession();
req.setCharacterEncoding("utf-8");
QueryWrapper<Room> wrapper = new QueryWrapper<Room>();
String name = req.getParameter("name");
if(name !=null && !name .equals("")){
wrapper.like("name",name);
}
roomDao = sqlSession.getMapper(RoomDao .class);
List<Room> roomList = roomDao .selectList(wrapper);
//定义需要统计的字段
double sumcount = 0;
//定义需要统计的字段
double sumprice = 0;
//将数据放入request
//循环遍历list数据,统计、获取外键数据
for(Room stAv : roomList){
if(stAv.getCount ()!=null)
sumcount += stAv .getCount ();
if(stAv.getPrice ()!=null)
sumprice += stAv .getPrice ();
}
req.setAttribute("sumcount",sumcount);
if( roomList .size() > 0){
req.setAttribute("avgcount",sumcount / roomList .size() );
}
if( roomList .size() > 0){
req.setAttribute("avgprice",sumprice / roomList .size() );
}
//session关闭
sqlSession.close();
req.setAttribute("roomList",roomList);
req.getRequestDispatcher("/pages/room-list.jsp").forward(req,resp);
}
}
论文参考
javaweb酒店管理系统-源码获取
💟💟有什么问题,都可以在评论区留言咨询哟!!
如果大家有任何疑虑,欢迎在下方位置详细交流。