Xhotel
導入
Topview Studioの評価プロジェクトの最初のラウンド:ホテル管理システム(Huang Yuchao)
Xhotelは、視聴室、予約室、個人情報管理、部屋とホテル情報管理(管理者)、その他の機能などのバックエンドテクノロジーを提供するホテル管理システムです:Java、Tomcat、MySQL、サーブレット、JSP
クイックスタート
今すぐ体験するにはここをクリックしてください
情報
開発者:Huang Yuchao連絡先メール:[email protected]
プロジェクト開発時間:2019-04-04から2019-04-25
バージョン番号:1.0.0
オープンソースライセンス:Apacheライセンス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は、BasedAoのサブクラスです。サブクラスは、対応するサービスレイヤーで渡されたデータの処理といくつかのSQLステートメントの記述のみを担当します。すべてのデータベース操作は、BasedAOの2つの方法にあります。
- PO層は継承システムを使用します。すべてのエンティティは、(直接的または間接的に)ベースエンティティを継承し、ID、ステータス、GMT_CREATE、およびGMT_MODIFIED情報をデータベーステーブルの保存し、部屋とサービスの両方が製品クラスを継承し、部屋とサービスの両方の注文を注文を継承します。
- MD5暗号化、UUIDの取得、およびその他の機能がツールクラスに入れて再利用します
- コードの抽出と再構築を繰り返し、テンプレートのメソッドとポリシーパターンなどを使用してコードを最適化します。
保守性
- コードコメント:ほとんどのコードはクラスのコメント、メソッドコメント、属性コメントを提供します
- インターフェイスドキュメント:Javadocアノテーションを使用して、APIドキュメントを提供します
- インターフェイス指向のプログラミング:DAOレイヤーとサービスレイヤーの両方が、実装クラスとは別の上向きのインターフェイスを提供します
- カプセル化:PO、VOレイヤーにはゲッターとセッターのメソッドのみがあります
- 堅牢性:ほとんどのクラスには対応するテストクラスがあり、複数回のテストを受けています
- 標準化:フロントエンドリクエストパラメーター仕様を統合し、列挙クラスを使用して要求パラメーターを管理する
- 構成ファイル、データベース構成、接続プールの構成、工場出荷時の構成をすべてコードから分離します
- MVCデザインパターン:サーブレットにページ出力はなく、JSPにはJavaコードがなく、データ処理はすべてサービスレイヤーに配置されます
- 「魔法の値」はほとんどありません。ほとんどの定数は列挙クラスを使用し、最終変数を使用するものはほとんどなく、残りはフロントエンドの部分リクエストパラメーターの定数です
- コードの汚染を避ける:ceckexceptionをruntimeexceptionにカプセル化し、層間の結合を避けるために上層にそれを投げます
- 単一の責任:各サービスには、それぞれの対応するDAOレイヤー実装クラスがあり、各サービスとDAOは独自の機能を個別に完了できます。
データ入力と終了のカプセル化:
- フロントエンドデータ:すべての要求パラメーターは、Beanutilsを介してエンティティクラスオブジェクトにマッピングされ、このプロセスでは、ラベルインジェクションが均一にフィルタリングされます。
- 永続的なデータ:すべてのデータベース更新操作とデータベースクエリ操作は、BasedAoIMPLのexecuteUpDateおよびExecuteQueryメソッドにカプセル化されています。これらの2つの方法のみがデータベース接続プールに接続でき、リソースを均一に取得してリリースできます。
- Query result Set Data:basedaoimplは、すべてのデータベース更新操作とほとんどのクエリ操作をカプセル化します。サブクラスとSQLステートメントを介して実行されるクエリはわずかです。結果セットの処理はすべてbasedaoimplによってカプセル化されています
- ステータスと処理の結果:サービスレイヤーによって返されるすべてのターンテーブルコードと処理されたデータが結果に返されます
- ページデータ:フロントエンドに返されるすべてのデータはpagevoで返されます
パフォーマンス
- データベースアクセスパフォーマンスを改善するための手書きのデータベース接続プール
デザインパターン
- 工場モデル
- シングルトンモード
- ポリシーモード
- 装飾モード
- テンプレートメソッド
- MVCモード
プロジェクト開発ログ:
4月20日更新:基本的なJSPページを作成します
4月17日更新:客室、注文、その他のサービスを建設します
4月14日に更新:コントロールレイヤーを構築する、ユーザーサービスの実装
4月12日に更新されました
4月11日更新:userdaoを作成します
4月10日に更新:基本レイヤーの構築
4月9日に更新:DAO層の予備建設
4月8日更新:データベース接続プールの構築
4月7日更新:プロジェクトの構築
4月3日に更新:プロジェクト要件分析を提出します(プロジェクトの命名:Xhotel)
4月1日に更新:現在、需要分析の段階にあり、データモデルの確立とビジネスプロセスの予備設計
3月30日に更新:CAT Studioのプロジェクトが完了したばかりで、QG Bootcampにはタスクがあるので、まだ開始していません
最初に猫プロジェクトの経験を要約し、プロジェクトを書く前に遭遇するいくつかの問題を理解する準備をしてください。
ライセンス
このソフトウェアはコミュニケーションと学習専用であり、商業目的で使用できない場合があります
Copyright Huang Yuchao
Apacheライセンス、バージョン2.0(「ライセンス」)に基づいてライセンスされています。ライセンスに準拠している場合を除き、このファイルを使用することはできません。ライセンスのコピーを取得できます
http://www.apache.org/licenses/LICENSE-2.0
適用法で要求されていないか、書面で合意されていない限り、ライセンスに基づいて配布されたソフトウェアは、明示または黙示のいずれかの保証または条件なしに、「現状のまま」に基づいて配布されます。ライセンスに基づく権限と制限を管理する特定の言語のライセンスを参照してください。