Code OOP
Code OOP
BEGIN
END
GO
GO
USE HotelManagement;
GO
type VARCHAR(50),
status VARCHAR(20)
);
phone VARCHAR(15),
checkInDate DATE,
checkOutDate DATE
);
---Bước 4: Tạo bảng Booking
customerId INT,
roomId INT,
status VARCHAR(20),
);
name NVARCHAR(100),
price DECIMAL(10, 2)
);
bookingId INT,
serviceId INT,
quantity INT,
);
///ServiceUsage
public ServiceUsage() {
this.usageId = usageId;
this.bookingId = bookingId;
this.serviceId = serviceId;
this.quantity = quantity;
return usageId;
this.usageId = usageId;
return bookingId;
this.bookingId = bookingId;
}
public int getServiceId() {
return serviceId;
this.serviceId = serviceId;
return quantity;
this.quantity = quantity;
@Override
///Service
public Service() {
}
this.serviceId = serviceId;
this.name = name;
this.price = price;
return serviceId;
this.serviceId = serviceId;
return name;
this.name = name;
return price;
this.price = price;
@Override
return String.format("Service [ID=%d, Tên DV=%s, Giá=%,.0f VND]", serviceId, name, price);
}
//a - Thêm phòng mới
package vanggg;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
String sql = "INSERT INTO Rooms (roomId, roomNumber, type, price, status) VALUES
(?, ?, ?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(sql)) {
ps.setInt(1, room.getRoomId());
ps.setString(2, room.getRoomNumber());
ps.setString(3, room.getType());
ps.setDouble(4, room.getPrice());
ps.setString(5, room.getStatus());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery()) {
while (rs.next()) {
System.out.println("Phòng " + roomNumber + " - Loại: " + type + " - Giá: " + price + " - Trạng
thái: " + status);
} catch (SQLException e) {
e.printStackTrace();
}
hotelManagement.showRooms();
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
String sql = "INSERT INTO Customers (customerId, name, phone, checkInDate, checkOutDate)
VALUES (?, ?, ?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(sql)) {
ps.setInt(1, customer.getCustomerId());
ps.setString(2, customer.getName());
ps.setString(3, customer.getPhone());
ps.setString(4, customer.getCheckInDate());
ps.setString(5, customer.getCheckOutDate());
ps.executeUpdate();
e.printStackTrace();
hotelManagement.addCustomer(newCustomer);
import java.sql.*;
psCheck.setInt(1, roomId);
ResultSet rs = psCheck.executeQuery();
if (rs.next()) {
String status = rs.getString("status");
if (!status.equalsIgnoreCase("trống")) {
return false;
psInsert.setInt(1, customerId);
psInsert.setInt(2, roomId);
psInsert.executeUpdate();
String updateRoom = "UPDATE Rooms SET status = 'đã đặt' WHERE roomId = ?";
psUpdate.setInt(1, roomId);
psUpdate.executeUpdate();
return true;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
Hiển thị danh sách đặt phòng
import java.sql.*;
ResultSet rs = stmt.executeQuery(sql)) {
while (rs.next()) {
rs.getInt("bookingId"),
rs.getString("name"),
rs.getString("roomNumber"),
rs.getDate("bookingDate"),
rs.getString("status"));
} catch (SQLException e) {
e.printStackTrace();
Sao chép
Chỉnh sửa
import java.sql.*;
double bill = 0;
String sql = "SELECT DATEDIFF(DAY, checkInDate, checkOutDate) AS stayDays, r.price, r.roomId " +
PreparedStatement ps = conn.prepareStatement(sql)) {
ps.setInt(1, customerId);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
System.out.printf("Số ngày ở: %d, Giá mỗi ngày: %.2f, Tổng hóa đơn: %.2f%n", days, price,
bill);
// Cập nhật trạng thái booking và phòng
String updateBooking = "UPDATE Bookings SET status = 'đã trả' WHERE customerId = ?";
String updateRoom = "UPDATE Rooms SET status = 'trống' WHERE roomId = ?";
psUpdate1.setInt(1, customerId);
psUpdate1.executeUpdate();
psUpdate2.setInt(1, roomId);
psUpdate2.executeUpdate();
} else {
System.out.println("Không tìm thấy thông tin đặt phòng đang hoạt động.");
} catch (SQLException e) {
e.printStackTrace();
return bill;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class CancelBookingService {
try {
checkStmt.setInt(1, bookingId);
ResultSet rs = checkStmt.executeQuery();
if (!rs.next()) {
return;
PreparedStatement deleteSUStmt =
conn.prepareStatement(deleteServiceUsageSql);
deleteSUStmt.setInt(1, bookingId);
deleteSUStmt.executeUpdate();
PreparedStatement deleteBookingStmt =
conn.prepareStatement(deleteBookingSql);
deleteBookingStmt.setInt(1, bookingId);
deleteBookingStmt.executeUpdate();
updateRoomStmt.setInt(1, roomId);
updateRoomStmt.executeUpdate();
} catch (Exception e) {
///gọi hàm