Xhotel
Einführung
Topview Studios erste Runde des Bewertungsprojekts: Hotelmanagementsystem (Huang Yuchao)
Xhotel ist ein Hotelmanagementsystem, das Backend -Technologien wie Anzeigen von Räumen, Buchungsräumen, Personalinformationsmanagement, Zimmer- und Hotelinformationsmanagement (Administratoren) und andere Funktionen bietet: Java, Tomcat, MySQL, Servlet, JSP, JSP
Schneller Start
Klicken Sie hier, um es jetzt zu erleben
Information
Entwickler: Huang Yuchao Kontakt E -Mail: [email protected]
Projektentwicklungszeit: 2019-04-04 bis 2019-04-25
Versionsnummer: 1.0.0
Open Source -Lizenz: Apache -Lizenz 2.0
Laufumgebung:
- Tomcat 9.0.17
- MySQL 5.7.29
- JDK 1.8
Merkmale
1. Anmeldeseite

2. Homepage
3. Fuzzy Query Room

4. Message Board

Funktionen implementiert
1. Benutzermodul
- Registrierungsfunktion
- Login -Funktion
- Denken Sie an den Anmeldestatus und melden Sie sich beim nächsten Mal automatisch an
- Melden Sie sich aus
- Benutzer sehen persönliche Informationen anzeigen und ändern ihre eigenen persönlichen Informationen
- Benutzer laden ihren eigenen Avatar hoch und ändern ihren eigenen Avatar
- Benutzer ändern ihr Anmeldekennwort
- Benutzer ändern ihr Zahlungskennwort
- Suchen Sie nach Räumen, sehen Sie Rauminformationen an, Buchzimmer
- Sie können die Check-in-Zeit und die Abfahrtszeit in der Bestellung auswählen
- Sie können die Bemerkungsinformationen in der Bestellung ausfüllen
- Benutzer sehen ihre eigenen Bestellungen und stornieren ihre eigenen Bestellungen
- Sie können eine Nachricht auf dem Message Board hinterlassen, um die Kommentare anderer Personen anzuzeigen
2. Administratormodul
- Administratoren können neue Benutzer hinzufügen
- Administratoren können neue Räume hinzufügen
- Der Administrator kann die Rauminformationen ändern und den Raum löschen
3. Super Administrator
- Fügen Sie das Hotel hinzu, löschen, überprüfen und ändern (keine Schnittstellenanzeige, nur auf der DAO -Ebene abgeschlossen).
Codefunktionen
Sicherheit
- Verwenden Sie regelmäßige Eingabeprüfungen und erlauben Sie keine illegalen Daten, die Datenbank einzugeben
- Vorbereitungen verhindert die SQL -Injektion
- Filteretikett -Injektion
- Verschlüsseln Sie das Benutzerkennwort mit MD5
- Verwenden Sie UUID, um die globale Einzigartigkeit sicherzustellen
- Nullzeigerprüfung
Wiederverwendbarkeit von Code
- Alle DAO sind eine Unterklasse von Basedao. Die Unterklasse ist nur für die Verarbeitung von Daten verantwortlich, die in der entsprechenden Serviceschicht übergeben und einige SQL -Anweisungen schreiben. Alle Datenbankvorgänge sind in den beiden Methoden von basiertem A -Basiert.
- Die PO -Schicht verwendet ein Vererbungssystem. Alle Entitäten erben (direkt oder indirekt) BasisEntity, speichern ID, Status, GMT_Create und GMT_Modified Informationen zur Datenbanktabelle, und sowohl Räume als auch Dienste erben die Produktklasse, und beide Räume und Servicestellungen erben die Reihenfolge.
- MD5 -Verschlüsselung, Erlangung von UUID und andere Funktionen werden in die Werkzeugklasse eingebracht, um sie wieder zuverwenden
- Wiederholen Sie die Codeextraktion und -rekonstruktion, optimieren Sie den Code mithilfe von Vorlagenmethoden und Richtlinienmustern usw.
Wartbarkeit
- Code -Kommentare: Der größte Teil des Codes enthält Klassenkommentare, Methodenkommentare und Attribut Kommentare
- Schnittstellendokumentation: Verwenden Sie Javadoc -Anmerkungen, um API -Dokumentation bereitzustellen
- Interface-orientierte Programmierung: Sowohl die DAO-Ebene als auch die Serviceschicht liefern Aufwärtsschnittstellen, getrennt von der Implementierungsklasse
- Kapselung: PO, VO -Schicht hat nur Getter- und Setter -Methoden
- Robustheit: Die meisten Klassen haben entsprechende Testkurse und haben mehrere Testrunden durchlaufen
- Standardisierung: Vereinen
- Verwenden Sie Konfigurationsdateien, Datenbankkonfiguration, Verbindungspoolkonfiguration und Werkskonfiguration, die alle vom Code getrennt sind
- MVC -Designmuster: Es gibt keine Seitenausgabe im Servlet, kein Java -Code in JSP, und die Datenverarbeitung wird in die Serviceschicht eingegeben
- Fast kein "magischer Wert": Die meisten Konstanten verwenden Aufzählungsklassen, nur sehr wenige verwenden endgültige Variablen, und der Rest sind Konstanten in den Front-End-Anforderungsparametern
- Vermeiden Sie Codekontamination: Scheckkexception in RunTimeException einkapseln und in die obere Ebene werfen, um eine Kopplung zwischen den Schichten zu vermeiden
- Einzelaufgaben: Jeder Dienst verfügt über eine eigene entsprechende DAO -Schicht -Implementierungsklasse, und jeder Dienst und DAO können seine eigenen Funktionen separat erfüllen.
Einkapselung der Dateneingabe und -ausnahme:
- Front-End-Daten: Alle Anforderungsparameter werden über Beanutils in Entitätsklassenobjekte abgebildet, und in diesem Prozess wird die Etiketteninjektion einheitlich gefiltert.
- Persistente Daten: Alle Datenbankoperationen und Datenbankabfragevorgänge werden in den Methoden "ExecuteUpdate" und "ExecuteQuery" von BasingaoImplum verkapselt. Nur diese beiden Methoden können eine Verbindung zum Datenbankverbindungspool herstellen, und Ressourcen können einheitlich erfasst und freigegeben werden.
- Abfrageergebnis -Set -Daten: BasisaOImPL verkauft alle Datenbankaktualisierungsvorgänge und die meisten Abfragevorgänge. Nur wenige Abfragen werden durch Unterklassen und SQL -Anweisungen ausgeführt. Die Verarbeitung des Ergebnissatzes wird alle durch basiertes AooImPL verkapselt
- Status- und Verarbeitungsergebnisse: Alle von der Serviceschicht zurückgegebenen Plattenspieler -Codes und verarbeiteten Daten werden im Ergebnis zurückgegeben
- Seitendaten: Alle Daten, die am Frontend zurückgegeben werden
Leistung
- Handschriftlicher Datenbankverbindungspool zur Verbesserung der Leistung des Datenbankzugriffs
Designmuster
- Fabrikmodell
- Singleton -Modus
- Richtlinienmodus
- Dekorationsmodus
- Vorlagenmethode
- MVC -Modus
Projektentwicklungsprotokoll:
Aktualisiert 20. April: Basis -JSP -Seiten erstellen
Aktualisiert am 17. April: Bauzimmer, Bestellungen und andere Dienstleistungen
Aktualisiert am 14. April: Erstellen Sie die Steuerungsschicht, UserService -Implementierung
Aktualisiert am 12. April: Bauzimmer, Bestellungen werden implementiert
Aktualisiert 11. April: UserDao erstellen
Aktualisiert am 10. April: Erstellen der Grundschicht
Aktualisiert am 9. April: Voraufbau der DAO -Schicht
Aktualisiert 8. April: Erstellen Sie einen Datenbankverbindungspool
Aktualisiert 7. April: Erstellen Sie ein Projekt
Aktualisiert am 3. April: Projektanforderungenanalyse einreichen (Projektnamen: Xhotel)
Aktualisiert am 1. April: Derzeit in der Phase der Nachfrageanalyse, die Festlegung von Datenmodellen und vorläufige Gestaltung von Geschäftsprozessen
Aktualisiert am 30. März: Das Projekt von Cat Studio wurde gerade abgeschlossen und der QG Bootcamp hat eine Aufgabe, also habe ich noch nicht angefangen
Seien Sie bereit, zuerst die Erfahrungen des Katzenprojekts zusammenzufassen und einige Probleme zu verstehen, denen Sie vor dem Schreiben des Projekts begegnen.
Lizenz
Diese Software dient nur zur Kommunikation und zum Lernen und kann möglicherweise nicht für kommerzielle Zwecke verwendet werden
Copyright Huang Yuchao
Lizenziert unter der Apache -Lizenz, Version 2.0 (der "Lizenz"); Sie dürfen diese Datei nur in Übereinstimmung mit der Lizenz verwenden. Sie können eine Kopie der Lizenz bei erhalten
http://www.apache.org/licenses/LICENSE-2.0
Sofern nicht nach geltendem Recht oder schriftlich zu vereinbart wird, wird die im Rahmen der Lizenz verteilte Software auf "As ist" Basis ohne Gewährleistung oder Bedingungen jeglicher Art, entweder ausdrücklich oder impliziert, verteilt. Siehe die Lizenz für die spezifischen Sprachberechtigungen und Einschränkungen im Rahmen der Lizenz.