使用数据库、Java11+Eclipse2019制造一个具有房间管理、人员管理和预订管理简单、实现网页的酒店前台系统毕业设计,要详细代码和步骤
5条回答 默认 最新
檀越@新空间 2025-07-30 16:25关注下午好🌅🌅🌅
本答案参考通义千问要使用 Java 11 + Eclipse 2019 开发一个具有 房间管理、人员管理和预订管理 的酒店前台系统,并将其部署为网页应用,你可以按照以下详细步骤进行开发。我们将使用 Servlet + JSP + JDBC + MySQL 来实现这个系统。
一、项目目标
- 实现酒店前台系统的 房间管理、人员管理、预订管理 功能。
- 使用 MySQL 作为数据库。
- 使用 Java 11 和 Eclipse 2019 作为开发环境。
- 使用 JSP + Servlet 实现网页交互。
- 使用 JDBC 连接数据库。
二、技术栈
| 技术 | 说明 | |------|------| | Java | Java 11 | | IDE | Eclipse 2019 | | Web Server | Apache Tomcat 9.x | | Database | MySQL 8.0 | | JDBC | MySQL Connector/J | | JSP/Servlet | 网页交互逻辑 | | HTML/CSS/JavaScript | 前端页面设计 |
三、开发步骤
1. 环境准备
1.1 安装 JDK 11
- 下载并安装 JDK 11
- 配置
JAVA_HOME环境变量
1.2 安装 Eclipse 2019
- 下载并安装 Eclipse 2019-03
- 安装完成后,配置 Tomcat 服务器(如 Apache Tomcat 9.x)
1.3 安装 MySQL 8.0
- 下载并安装 MySQL 8.0
- 创建数据库和用户,例如:
CREATE DATABASE hotel_db; CREATE USER 'hotel_user'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON hotel_db.* TO 'hotel_user'@'localhost'; FLUSH PRIVILEGES;
1.4 下载 MySQL JDBC 驱动
- 下载 mysql-connector-java-8.0.26.jar
- 将其添加到项目的 build path 中
2. 创建数据库结构
在 MySQL 中创建如下表:
2.1 房间表 (
rooms)CREATE TABLE rooms ( room_id INT PRIMARY KEY AUTO_INCREMENT, room_number VARCHAR(10) NOT NULL, room_type VARCHAR(50) NOT NULL, price DECIMAL(10, 2) NOT NULL, is_available BOOLEAN DEFAULT TRUE );2.2 人员表 (
users)CREATE TABLE users ( user_id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL, phone VARCHAR(20), email VARCHAR(100) );2.3 预订表 (
bookings)CREATE TABLE bookings ( booking_id INT PRIMARY KEY AUTO_INCREMENT, user_id INT, room_id INT, check_in DATE, check_out DATE, FOREIGN KEY (user_id) REFERENCES users(user_id), FOREIGN KEY (room_id) REFERENCES rooms(room_id) );
3. 创建 Maven Web Project
3.1 在 Eclipse 中创建 Maven Web Project
- File → New → Other → Maven Project
- 选择 archetype:
maven-archetype-webapp - 设置 Group Id:
com.hotel - Artifact Id:
hotel-system - Finish
3.2 添加依赖(pom.xml)
在
pom.xml中添加如下依赖:<dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> </dependencies>
4. 编写数据库连接类
4.1 创建
DBUtil.javapackage com.hotel.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBUtil { private static final String URL = "jdbc:mysql://localhost:3306/hotel_db?useSSL=false&serverTimezone=UTC"; private static final String USER = "hotel_user"; private static final String PASSWORD = "password"; public static Connection getConnection() throws SQLException { return DriverManager.getConnection(URL, USER, PASSWORD); } }
5. 创建实体类(Model)
5.1
Room.javapackage com.hotel.model; public class Room { private int id; private String number; private String type; private double price; private boolean available; // getters and setters }5.2
User.javapackage com.hotel.model; public class User { private int id; private String name; private String phone; private String email; // getters and setters }5.3
Booking.javapackage com.hotel.model; public class Booking { private int id; private int userId; private int roomId; private String checkIn; private String checkOut; // getters and setters }
6. 创建 DAO 层(数据访问层)
6.1
RoomDAO.javapackage com.hotel.dao; import com.hotel.model.Room; import com.hotel.util.DBUtil; import java.sql.*; import java.util.ArrayList; import java.util.List; public class RoomDAO { public List<Room> getAllRooms() { List<Room> rooms = new ArrayList<>(); try (Connection conn = DBUtil.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM rooms")) { while (rs.next()) { Room room = new Room(); room.setId(rs.getInt("room_id")); room.setNumber(rs.getString("room_number")); room.setType(rs.getString("room_type")); room.setPrice(rs.getDouble("price")); room.setAvailable(rs.getBoolean("is_available")); rooms.add(room); } } catch (SQLException e) { e.printStackTrace(); } return rooms; } // 其他方法:addRoom(), updateRoom(), deleteRoom() }6.2
UserDAO.java、BookingDAO.java同理
7. 创建 Servlet 控制器
7.1
RoomServlet.javapackage com.hotel.controller; import com.hotel.dao.RoomDAO; import com.hotel.model.Room; import javax.servlet.*; import javax.servlet.http.*; import java.io.IOException; import java.util.List; public class RoomServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RoomDAO dao = new RoomDAO(); List<Room> rooms = dao.getAllRooms(); request.setAttribute("rooms", rooms); RequestDispatcher dispatcher = request.getRequestDispatcher("/rooms.jsp"); dispatcher.forward(request, response); } }7.2 创建其他 Servlet:
UserServlet,BookingServlet
8. 创建 JSP 页面
8.1
index.jsp<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>酒店管理系统</title> </head> <body> <h1>欢迎来到酒店管理系统</h1> <a href="room">查看房间信息</a><br> <a href="user">查看用户信息</a><br> <a href="booking">查看预订信息</a> </body> </html>8.2
rooms.jsp<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>房间信息</title> </head> <body> <h1>房间列表</h1> <table border="1"> <tr> <th>编号</th> <th>房号</th> <th>类型</th> <th>价格</th> <th>状态</th> </tr> <c:forEach items="${rooms}" var="room"> <tr> <td>${room.id}</td> <td>${room.number}</td> <td>${room.type}</td> <td>${room.price}</td> <td>${room.available ? '可用' : '不可用'}</td> </tr> </c:forEach> </table> </body> </html>8.3
users.jsp,bookings.jsp类似
9. 配置 web.xml 或使用注解映射
9.1 使用注解(推荐)
在 Servlet 上添加
@WebServlet("/room")等注解。9.2 或者在
web.xml中配置:<servlet> <servlet-name>RoomServlet</servlet-name> <servlet-class>com.hotel.controller.RoomServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>RoomServlet</servlet-name> <url-pattern>/room</url-pattern> </servlet-mapping>
10. 运行项目
- 在 Eclipse 中右键项目 → Run As → Run on Server
- 选择 Apache Tomcat 9.x 服务器
- 访问
http://localhost:8080/hotel-system/index.jsp
四、重点功能实现说明
1. 房间管理
- 查看所有房间
- 添加新房间
- 修改房间状态(可用/不可用)
- 删除房间
2. 人员管理
- 添加用户
- 查看用户信息
- 编辑用户信息
3. 预订管理
- 用户预订房间
- 查看所有预订
- 取消预订
五、代码示例(修改后的)
示例:添加房间的 Servlet(RoomServlet.java)
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String number = request.getParameter("number"); String type = request.getParameter("type"); double price = Double.parseDouble(request.getParameter("price")); Room room = new Room(); room.setNumber(number); room.setType(type); room.setPrice(price); RoomDAO dao = new RoomDAO(); dao.addRoom(room); response.sendRedirect("room"); }示例:添加房间的 JSP 页面(add-room.jsp)
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>添加房间</title> </head> <body> <h1>添加房间</h1> <form action="room" method="post"> 房号:<input type="text" name="number"><br> 类型:<input type="text" name="type"><br> 价格:<input type="text" name="price"><br> <input type="submit" value="提交"> </form> </body> </html>
六、总结
| 步骤 | 内容 | |------|------| | 1 | 环境搭建(JDK 11 + Eclipse + Tomcat + MySQL) | | 2 | 数据库设计(房间、人员、预订表) | | 3 | 项目结构(Maven + Servlet + JSP) | | 4 | 数据库连接与操作(JDBC) | | 5 | 实体类、DAO 层、Servlet、JSP 页面开发 | | 6 | 部署运行并测试系统功能 |
如果你需要完整的源码包或某个模块的详细代码,请告诉我,我可以提供完整版本。
解决 无用评论 打赏 举报