Xhotel
Introduction
Le premier cycle de Topview Studio Project d'évaluation: Système de gestion hôtelière (Huang Yuchao)
Xhotel est un système de gestion hôtelière qui fournit des technologies backend telles que les salles de visualisation, les chambres de réservation, la gestion des informations personnelles, la gestion de l'information des chambres et des hôtels (administrateurs) et d'autres fonctions: Java, Tomcat, Mysql, Servlet, JSP
Démarrage rapide
Cliquez ici pour en faire l'expérience maintenant
Information
Développeur: Huang Yuchao Contact Courriel: [email protected]
Temps de développement du projet: 2019-04-04 à 2019-04-25
Numéro de version: 1.0.0
Licence open source: Licence Apache 2.0
Environnement de course:
- Tomcat 9.0.17
- mysql 5.7.29
- JDK 1.8
Caractéristiques
1. Page de connexion

2. Page d'accueil
3. Salle de requête floue

4. Babillard électronique

Fonctions implémentées
1. Module utilisateur
- Fonction d'enregistrement
- Fonction de connexion
- N'oubliez pas l'état de connexion et connectez-vous automatiquement la prochaine fois
- Déconnecter
- Les utilisateurs consultent les informations personnelles et modifient leurs propres informations personnelles
- Les utilisateurs téléchargent leur propre avatar et modifient leur propre avatar
- Les utilisateurs modifient leur mot de passe de connexion
- Les utilisateurs modifient leur mot de passe de paiement
- Rechercher des chambres, voir les informations sur les chambres, la salle de livres
- Vous pouvez choisir l'heure d'enregistrement et l'heure de départ dans la commande
- Vous pouvez remplir les informations de remarques dans la commande
- Les utilisateurs voient leurs propres commandes et annulent leurs propres commandes
- Vous pouvez laisser un message sur le babillard pour afficher les commentaires des autres
2. Module administrateur
- Les administrateurs peuvent ajouter de nouveaux utilisateurs
- Les administrateurs peuvent ajouter de nouvelles chambres
- L'administrateur peut modifier les informations de la pièce et supprimer la pièce
3. Super administrateur
- Ajouter, supprimer, vérifier et modifier l'hôtel (pas d'affichage d'interface, uniquement terminé au niveau DAO)
Caractéristiques de code
Sécurité
- Utilisez des contrôles d'entrée réguliers et ne permettez pas aux données illégales de saisir la base de données
- Préparestatement empêche l'injection SQL
- Injection de l'étiquette de filtre
- Crypter le mot de passe utilisateur à l'aide de md5
- Utilisez UUID pour assurer l'unicité mondiale
- Vérification du pointeur nul
Réutilisabilité du code
- Tout DAO est une sous-classe de Basedao. La sous-classe est uniquement responsable du traitement des données réalisées dans la couche de service correspondante et de la rédaction de certaines instructions SQL. Toutes les opérations de base de données sont dans les deux méthodes de base de base.
- La couche PO utilise un système d'héritage. Toutes les entités héritent de la base (directement ou indirectement), stockant les informations ID, Status, GMT_Create et GMT_Modified de la table de base de données, et les chambres et les services héritent de la classe de produits, et les chambres et les commandes de service héritent de la commande.
- Le cryptage MD5, l'obtention de l'UUID et d'autres fonctions sont placés dans la classe d'outils pour réutiliser
- Répétez l'extraction et la reconstruction du code, optimiser le code à l'aide de méthodes de modèle et de modèles de stratégie, etc.
Maintenabilité
- Commentaires du code: La plupart du code fournit des commentaires de classe, des commentaires de la méthode et des commentaires d'attribut
- Documentation de l'interface: utilisez des annotations Javadoc pour fournir une documentation API
- Programmation orientée vers l'interface: la couche DAO et la couche de service fournissent des interfaces ascendantes, distinctes de la classe d'implémentation
- Encapsulation: PO, la couche VO a uniquement des méthodes Getter et Setter
- Robustesse: la plupart des classes ont des classes de test correspondantes et ont subi plusieurs cycles de test
- Standardisation: Unifiez les spécifications des paramètres de demande frontale et utilisez des classes d'énumération pour gérer les paramètres de demande
- Utiliser les fichiers de configuration, la configuration de la base de données, la configuration du pool de connexion et la configuration d'usine sont toutes séparées du code
- Modèle de conception MVC: il n'y a pas de sortie de page dans le servlet, pas de code Java dans JSP et le traitement des données est tout placé dans la couche de service
- Presque pas de "valeur magique": la plupart des constantes utilisent des classes d'énumération, très peu utilisent des variables finales et les autres sont des constantes dans les paramètres de demande partielle frontale
- Évitez la contamination du code: encapsuler le contrôle de contrôle dans RuntimeException et le jeter sur la couche supérieure pour éviter le couplage entre les couches
- Responsabilités uniques: chaque service a sa propre classe d'implémentation de couche DAO correspondante, et chaque service et DAO peuvent remplir ses propres fonctions séparément.
Encapsulation de la saisie et de la sortie des données:
- Données frontales: tous les paramètres de demande sont mappés dans des objets de classe d'entités via des beanutils, et dans ce processus, l'injection d'étiquette est uniformément filtrée.
- Données persistantes: toutes les opérations de mise à jour de la base de données et les opérations de requête de la base de données sont encapsulées dans les méthodes ExecuteUpdate et Exécuter de base de BasedAOIMPL. Seules ces deux méthodes peuvent se connecter au pool de connexions de la base de données et les ressources peuvent être obtenues et publiées uniformément.
- Données de jeu de résultats de requête: BasedaOIMPL résume toutes les opérations de mise à jour de la base de données et la plupart des opérations de requête. Seules quelques requêtes sont exécutées via des sous-classes et des instructions SQL. Le traitement de l'ensemble de résultats est tous encapsulées par Basedaoimpl
- Résultats de l'état et du traitement: tous les codes de platine et les données traitées renvoyées par la couche de service sont renvoyées dans le résultat
- Données de page: Toutes les données renvoyées à l'avant sont renvoyées dans Pagevo
performance
- Pool de connexion de la base de données manuscrit pour améliorer les performances d'accès à la base de données
Modèle de conception
- Modèle d'usine
- Mode singleton
- Mode politique
- Mode décoratif
- Méthode du modèle
- Mode MVC
Journal de développement du projet:
Mis à jour le 20 avril: créez des pages JSP de base
Mis à jour le 17 avril: salles de construction, commandes et autres services
Mis à jour le 14 avril: créez la couche de contrôle, implémentation de la restauration
Mis à jour le 12 avril: les salles de construction, les commandes sont mises en œuvre
Mis à jour le 11 avril: construire UserDao
Mis à jour le 10 avril: construire la couche de base
Mis à jour le 9 avril: construction préliminaire de la couche DAO
Mis à jour le 8 avril: construire un pool de connexions de base de données
Mis à jour le 7 avril: construire un projet
Mis à jour le 3 avril: Soumettre l'analyse des exigences du projet (dénomination du projet: Xhotel)
Mis à jour le 1er avril: actuellement au stade de l'analyse de la demande, en établissant des modèles de données et une conception préliminaire des processus métier
Mis à jour le 30 mars: le projet de Cat Studio vient d'être terminé, et le bootcamp QG a une tâche, donc je n'ai pas encore commencé
Soyez prêt à résumer d'abord l'expérience du projet CAT et à comprendre certains problèmes que vous rencontrez avant d'écrire le projet.
Licence
Ce logiciel est pour la communication et l'apprentissage uniquement et ne peut pas être utilisé à des fins commerciales
Copyright Huang Yuchao
Licencié sous la licence Apache, version 2.0 (la "licence"); Vous ne pouvez pas utiliser ce fichier sauf conforme à la licence. Vous pouvez obtenir une copie de la licence à
http://www.apache.org/licenses/LICENSE-2.0
Sauf exiger la loi applicable ou convenu par écrit, les logiciels distribués en vertu de la licence sont distribués sur une base «tel quel», sans garantie ou conditions d'aucune sorte, expresse ou implicite. Voir la licence pour la langue spécifique régissant les autorisations et les limitations sous la licence.