xhotel
การแนะนำ
โครงการประเมินรอบแรกของ Topview Studio: ระบบการจัดการโรงแรม (Huang Yuchao)
Xhotel เป็นระบบการจัดการโรงแรมที่ให้บริการเทคโนโลยีแบ็คเอนด์เช่นห้องดูห้องจองการจัดการข้อมูลส่วนบุคคลการจัดการข้อมูลห้องพักและโรงแรม (ผู้ดูแลระบบ) และฟังก์ชั่นอื่น ๆ : Java, Tomcat, MySQL, Servlet, JSP
เริ่มต้นอย่างรวดเร็ว
คลิกที่นี่เพื่อสัมผัสกับมันตอนนี้
ข้อมูล
นักพัฒนา: Huang Yuchao ติดต่ออีเมล: [email protected]
เวลาพัฒนาโครงการ: 2019-04-04 ถึง 2019-04-25
หมายเลขเวอร์ชัน: 1.0.0
ใบอนุญาตโอเพ่นซอร์ส: Apache License 2.0
สภาพแวดล้อมการทำงาน:
- Tomcat 9.0.17
- mysql 5.7.29
- JDK 1.8
คุณสมบัติ
1. หน้าเข้าสู่ระบบ

2. หน้าแรก
3. ห้องค้นหาฟัซซี่

4. กระดานข้อความ

ฟังก์ชั่นนำไปใช้
1. โมดูลผู้ใช้
- ฟังก์ชันการลงทะเบียน
- ฟังก์ชันเข้าสู่ระบบ
- จดจำสถานะการเข้าสู่ระบบและเข้าสู่ระบบโดยอัตโนมัติในครั้งต่อไป
- ออกจากระบบ
- ผู้ใช้ดูข้อมูลส่วนบุคคลและแก้ไขข้อมูลส่วนบุคคลของตนเอง
- ผู้ใช้อัปโหลดอวตารของตนเองและปรับเปลี่ยนอวตารของตนเอง
- ผู้ใช้แก้ไขรหัสผ่านเข้าสู่ระบบ
- ผู้ใช้แก้ไขรหัสผ่านการชำระเงิน
- ค้นหาห้องดูข้อมูลห้องพักห้องหนังสือ
- คุณสามารถเลือกเวลาเช็คอินและเวลาออกเดินทางในการสั่งซื้อ
- คุณสามารถกรอกข้อมูลคำพูดในการสั่งซื้อ
- ผู้ใช้ดูคำสั่งซื้อของตนเองและยกเลิกคำสั่งซื้อของตนเอง
- คุณสามารถฝากข้อความไว้บนกระดานข้อความเพื่อดูความคิดเห็นของผู้อื่น
2. โมดูลผู้ดูแลระบบ
- ผู้ดูแลระบบสามารถเพิ่มผู้ใช้ใหม่
- ผู้ดูแลระบบสามารถเพิ่มห้องใหม่
- ผู้ดูแลระบบสามารถแก้ไขข้อมูลห้องและลบห้องได้
3. ผู้ดูแลระบบซุปเปอร์
- เพิ่มลบตรวจสอบและแก้ไขโรงแรม (ไม่มีการแสดงผลอินเตอร์เฟสเสร็จสมบูรณ์ในระดับ DAO เท่านั้น)
คุณสมบัติรหัส
ความปลอดภัย
- ใช้การตรวจสอบอินพุตปกติและไม่อนุญาตให้ข้อมูลผิดกฎหมายป้อนฐานข้อมูล
- การเตรียมการป้องกันการฉีด SQL
- การฉีดฉลากตัวกรอง
- เข้ารหัสรหัสผ่านผู้ใช้โดยใช้ MD5
- ใช้ UUID เพื่อให้แน่ใจว่าเป็นเอกลักษณ์ทั่วโลก
- ตรวจสอบตัวชี้ว่างเปล่า
ความสามารถในการนำรหัสซ้ำได้
- DAO ทั้งหมดเป็นคลาสย่อยของ Affleao subclass มีหน้าที่เฉพาะในการประมวลผลข้อมูลที่ส่งผ่านในเลเยอร์บริการที่สอดคล้องกันและเขียนคำสั่ง SQL บางอย่าง การดำเนินการฐานข้อมูลทั้งหมดอยู่ในสองวิธีของ Affleao
- เลเยอร์ PO ใช้ระบบการสืบทอด เอนทิตีทั้งหมดสืบทอด (โดยตรงหรือโดยอ้อม) การจัดเก็บ ID สถานะ GMT_CREATE และข้อมูล GMT_MODIFIED ของตารางฐานข้อมูลและทั้งห้องและบริการที่สืบทอดคลาสผลิตภัณฑ์และทั้งห้องและคำสั่งบริการที่สืบทอดคำสั่งซื้อ
- การเข้ารหัส MD5 การรับ UUID และฟังก์ชั่นอื่น ๆ จะถูกนำไปใช้ในคลาสเครื่องมือเพื่อนำมาใช้ซ้ำ
- ทำซ้ำการแยกรหัสและการสร้างใหม่เพิ่มประสิทธิภาพรหัสโดยใช้วิธีการเทมเพลตและรูปแบบนโยบาย ฯลฯ
การบำรุงรักษาได้
- ความคิดเห็นของรหัส: รหัสส่วนใหญ่ให้ความคิดเห็นคลาสความคิดเห็นวิธีและความคิดเห็นของคุณลักษณะ
- เอกสารอินเตอร์เฟส: ใช้คำอธิบายประกอบ Javadoc เพื่อจัดทำเอกสาร API
- การเขียนโปรแกรมเชิงอินเตอร์เฟส: ทั้งชั้น DAO และชั้นบริการให้อินเทอร์เฟซขึ้นแยกออกจากคลาสการใช้งาน
- encapsulation: PO, VO Layer เท่านั้นมีวิธีการ getter และ setter
- ความทนทาน: คลาสส่วนใหญ่มีคลาสทดสอบที่สอดคล้องกันและผ่านการทดสอบหลายรอบ
- มาตรฐาน: รวมข้อกำหนดพารามิเตอร์การร้องขอส่วนหน้าและใช้คลาสการแจงนับเพื่อจัดการพารามิเตอร์คำขอ
- ใช้ไฟล์การกำหนดค่าการกำหนดค่าฐานข้อมูลการกำหนดค่าพูลการเชื่อมต่อและการกำหนดค่าจากโรงงานทั้งหมดถูกคั่นด้วยรหัส
- รูปแบบการออกแบบ MVC: ไม่มีเอาต์พุตหน้าใน servlet ไม่มีรหัส Java ใน JSP และการประมวลผลข้อมูลทั้งหมดอยู่ในเลเยอร์บริการ
- แทบจะไม่มี "ค่าเวทย์มนตร์": ค่าคงที่ส่วนใหญ่ใช้คลาสการแจงนับน้อยมากใช้ตัวแปรสุดท้ายและส่วนที่เหลือเป็นค่าคงที่ในพารามิเตอร์การร้องขอบางส่วนส่วนหน้า
- หลีกเลี่ยงการปนเปื้อนของรหัส: ห่อหุ้ม checkexception ลงใน runtimeException และโยนมันไปที่ชั้นบนเพื่อหลีกเลี่ยงการมีเพศสัมพันธ์ระหว่างเลเยอร์
- ความรับผิดชอบเดี่ยว: แต่ละบริการมีคลาสการใช้งาน DAO Layer ที่สอดคล้องกันและแต่ละบริการและ DAO สามารถทำหน้าที่ของตัวเองให้เสร็จสิ้นได้
การห่อหุ้มการป้อนข้อมูลและการออก:
- ข้อมูลส่วนหน้า: พารามิเตอร์การร้องขอทั้งหมดจะถูกแมปเข้ากับวัตถุคลาสเอนทิตีผ่าน Beanutils และในกระบวนการนี้การฉีดฉลากจะถูกกรองอย่างสม่ำเสมอ
- ข้อมูลถาวร: การดำเนินการอัปเดตฐานข้อมูลทั้งหมดและการดำเนินการสืบค้นฐานข้อมูลจะถูกห่อหุ้มในวิธีการ ExecuteUpdate และ ExecuteQuery ของ Affraseaoimpl มีเพียงสองวิธีนี้เท่านั้นที่สามารถเชื่อมต่อกับพูลการเชื่อมต่อฐานข้อมูลและสามารถรับทรัพยากรและปล่อยออกมาได้อย่างสม่ำเสมอ
- ชุดข้อมูลการสืบค้นข้อมูล: Affraseaoimpl สรุปการดำเนินการอัปเดตฐานข้อมูลทั้งหมดและการดำเนินการแบบสอบถามส่วนใหญ่ มีการสอบถามเพียงไม่กี่ข้อผ่านคลาสย่อยและคำสั่ง SQL การประมวลผลของชุดผลลัพธ์นั้นถูกห่อหุ้มทั้งหมดโดย Affleaoimpl
- สถานะและผลการประมวลผล: รหัสแผ่นเสียงทั้งหมดและข้อมูลที่ประมวลผลที่ส่งคืนโดยเลเยอร์บริการจะถูกส่งคืนในผลลัพธ์
- ข้อมูลหน้า: ข้อมูลทั้งหมดที่ส่งคืนไปยังส่วนหน้าจะถูกส่งกลับใน PageVo
ผลงาน
- พูลการเชื่อมต่อฐานข้อมูลที่เขียนด้วยลายมือเพื่อปรับปรุงประสิทธิภาพการเข้าถึงฐานข้อมูล
รูปแบบการออกแบบ
- รูปแบบโรงงาน
- โหมดซิงเกิลตัน
- โหมดนโยบาย
- โหมดตกแต่ง
- วิธีแม่แบบ
- โหมด MVC
บันทึกการพัฒนาโครงการ:
อัปเดต 20 เมษายน: สร้างหน้า JSP พื้นฐาน
อัปเดตวันที่ 17 เมษายน: ห้องอาคารคำสั่งซื้อและบริการอื่น ๆ
อัปเดตเมื่อวันที่ 14 เมษายน: สร้างเลเยอร์ควบคุมการใช้งานผู้ใช้บริการ
อัปเดตเมื่อวันที่ 12 เมษายน: สร้างห้องพักคำสั่งซื้อจะถูกนำไปใช้
อัปเดต 11 เมษายน: สร้าง userdao
อัปเดตเมื่อวันที่ 10 เมษายน: สร้างเลเยอร์พื้นฐาน
อัปเดตเมื่อวันที่ 9 เมษายน: การก่อสร้างชั้นเบื้องต้นของชั้น DAO
อัปเดต 8 เมษายน: สร้างพูลเชื่อมต่อฐานข้อมูล
อัปเดต 7 เมษายน: สร้างโครงการ
อัปเดตเมื่อวันที่ 3 เมษายน: ส่งการวิเคราะห์ข้อกำหนดของโครงการ (การตั้งชื่อโครงการ: Xhotel)
อัปเดตเมื่อวันที่ 1 เมษายน: ปัจจุบันอยู่ในขั้นตอนของการวิเคราะห์ความต้องการการสร้างแบบจำลองข้อมูลและการออกแบบขั้นต้นของกระบวนการทางธุรกิจ
อัปเดตเมื่อวันที่ 30 มีนาคม: โครงการ Cat Studio เพิ่งเสร็จสิ้นและ QG Bootcamp มีงานดังนั้นฉันยังไม่ได้เริ่ม
เตรียมพร้อมที่จะสรุปประสบการณ์ของโครงการแมวก่อนและเข้าใจปัญหาบางอย่างที่คุณพบก่อนเขียนโครงการ
ใบอนุญาต
ซอฟต์แวร์นี้มีไว้สำหรับการสื่อสารและการเรียนรู้เท่านั้นและอาจไม่ได้ใช้เพื่อวัตถุประสงค์ทางการค้า
ลิขสิทธิ์ Huang Yuchao
ได้รับใบอนุญาตภายใต้ใบอนุญาต Apache เวอร์ชัน 2.0 ("ใบอนุญาต"); คุณไม่สามารถใช้ไฟล์นี้ยกเว้นตามใบอนุญาต คุณอาจได้รับสำเนาใบอนุญาตที่
http://www.apache.org/licenses/LICENSE-2.0
เว้นแต่ว่ากฎหมายที่บังคับใช้หรือตกลงเป็นลายลักษณ์อักษรซอฟต์แวร์ที่แจกจ่ายภายใต้ใบอนุญาตจะถูกแจกจ่ายตาม "ตามพื้นฐาน" โดยไม่มีการรับประกันหรือเงื่อนไขใด ๆ ไม่ว่าจะโดยชัดแจ้งหรือโดยนัย ดูใบอนุญาตสำหรับภาษาเฉพาะที่ควบคุมการอนุญาตและข้อ จำกัด ภายใต้ใบอนุญาต