Xhotel
Perkenalan
Proyek Penilaian Pertama Topview Studio: Sistem Manajemen Hotel (Huang Yuchao)
Xhotel adalah sistem manajemen hotel yang menyediakan teknologi backend seperti melihat kamar, ruang pemesanan, manajemen informasi pribadi, manajemen informasi hotel dan hotel (administrator) dan fungsi lainnya: Java, Tomcat, MySQL, Servlet, JSP
Awal yang cepat
Klik di sini untuk mengalaminya sekarang
Informasi
Pengembang: Huang Yuchao Hubungi Email: [email protected]
Waktu Pengembangan Proyek: 2019-04-04 hingga 2019-04-25
Nomor Versi: 1.0.0
Lisensi Sumber Terbuka: Lisensi Apache 2.0
Lingkungan Menjalankan:
- Tomcat 9.0.17
- MySQL 5.7.29
- JDK 1.8
Fitur
1. Halaman login

2. Halaman Beranda
3. Ruang permintaan fuzzy

4. Papan Pesan

Fungsi diimplementasikan
1. Modul Pengguna
- Fungsi pendaftaran
- Fungsi login
- Ingat status login dan masuk secara otomatis di lain waktu
- Keluar
- Pengguna melihat informasi pribadi dan memodifikasi informasi pribadi mereka sendiri
- Pengguna mengunggah avatar mereka sendiri dan memodifikasi avatar mereka sendiri
- Pengguna memodifikasi kata sandi login mereka
- Pengguna memodifikasi kata sandi pembayaran mereka
- Cari kamar, lihat informasi kamar, ruang buku
- Anda dapat memilih waktu check-in dan waktu keberangkatan dalam pesanan
- Anda dapat mengisi informasi komentar dalam pesanan
- Pengguna melihat pesanan mereka sendiri dan membatalkan pesanan mereka sendiri
- Anda dapat meninggalkan pesan di papan pesan untuk melihat komentar orang lain
2. Modul Administrator
- Administrator dapat menambahkan pengguna baru
- Administrator dapat menambahkan kamar baru
- Administrator dapat memodifikasi informasi kamar dan menghapus ruangan
3. Administrator Super
- Tambahkan, Hapus, Periksa, dan Ubah Hotel (Tidak Ada Tampilan Antarmuka, Hanya Diselesaikan ke Level DAO)
Fitur Kode
Keamanan
- Gunakan pemeriksaan input reguler dan jangan mengizinkan data ilegal untuk memasukkan database
- Persiapan mencegah injeksi SQL
- Injeksi label filter
- Mengenkripsi kata sandi pengguna menggunakan MD5
- Gunakan UUID untuk memastikan keunikan global
- Periksa penunjuk nol
Penggantian Ulang Kode
- All Dao adalah subclass dari BasedAo. Subkelas hanya bertanggung jawab untuk memproses data yang disahkan di lapisan layanan yang sesuai dan menulis beberapa pernyataan SQL. Semua operasi basis data ada dalam dua metode berdasarkan Basis.
- Lapisan PO menggunakan sistem warisan. Semua entitas mewarisi (secara langsung atau tidak langsung) basis, menyimpan ID, status, GMT_CREATE, dan informasi GMT_Modified dari tabel database, dan kedua kamar dan layanan mewarisi kelas produk, dan kedua kamar dan pesanan layanan mewarisi pesanan.
- Enkripsi MD5, memperoleh UUID, dan fungsi lainnya dimasukkan ke dalam kelas alat untuk digunakan kembali
- Ekstraksi dan rekonstruksi kode ulang, optimalkan kode menggunakan metode templat dan pola kebijakan, dll.
Pemeliharaan
- Komentar Kode: Sebagian besar kode memberikan komentar kelas, komentar metode, dan komentar atribut
- Dokumentasi Antarmuka: Gunakan Anotasi Javadoc untuk memberikan dokumentasi API
- Pemrograman berorientasi antarmuka: Lapisan DAO dan lapisan layanan menyediakan antarmuka ke atas, terpisah dari kelas implementasi
- Enkapsulasi: PO, Lapisan VO hanya memiliki metode Getter and Setter
- Ketahanan: Sebagian besar kelas memiliki kelas tes yang sesuai dan telah mengalami beberapa putaran pengujian
- Standardisasi: Bersatu Spesifikasi Parameter Permintaan Front-End, dan gunakan kelas enumerasi untuk mengelola parameter permintaan
- Gunakan file konfigurasi, konfigurasi database, konfigurasi kumpulan koneksi, dan konfigurasi pabrik semuanya dipisahkan dari kode
- Pola Desain MVC: Tidak ada output halaman di servlet, tidak ada kode java di JSP, dan pemrosesan data semuanya ditempatkan ke dalam lapisan layanan
- Hampir tidak ada "nilai ajaib": sebagian besar konstanta menggunakan kelas enumerasi, sangat sedikit menggunakan variabel akhir, dan sisanya adalah konstanta dalam parameter permintaan parsial front-end
- Hindari Kontaminasi Kode: Encapsulate CheckException ke dalam runtimeException dan lempar ke lapisan atas untuk menghindari penggabungan antar lapisan
- Tanggung jawab tunggal: Setiap layanan memiliki kelas implementasi lapisan DAO yang sesuai, dan setiap layanan dan DAO dapat menyelesaikan fungsinya sendiri secara terpisah.
Enkapsulasi entri dan keluar data:
- Data front-end: Semua parameter permintaan dipetakan ke objek kelas entitas melalui beanutils, dan dalam proses ini, injeksi label disaring secara seragam.
- Data Persisten: Semua operasi pembaruan database dan operasi kueri basis data dienkapsulasi dalam metode ExecuteUpdate dan ExecuteQuery dari BasedAIMPL. Hanya dua metode ini yang dapat terhubung ke kumpulan koneksi basis data, dan sumber daya dapat diperoleh dan dirilis secara seragam.
- Kueri Hasil Set Data: BROWERAOIMPL merangkum semua operasi pembaruan database dan sebagian besar operasi kueri. Hanya beberapa pertanyaan yang dieksekusi melalui subkelas dan pernyataan SQL. Pemrosesan set hasil semuanya dienkapsulasi oleh BRODSEAOIMPL
- Hasil Status dan Pemrosesan: Semua kode turntable dan data yang diproses dikembalikan oleh lapisan layanan dikembalikan dalam hasilnya
- Data Halaman: Semua data yang dikembalikan ke ujung depan dikembalikan di pagevo
pertunjukan
- Kumpulan koneksi basis data tulisan tangan untuk meningkatkan kinerja akses basis data
Pola desain
- Model pabrik
- Mode singleton
- Mode Kebijakan
- Mode dekoratif
- Metode template
- Mode MVC
Log Pengembangan Proyek:
Diperbarui 20 April: Bangun halaman JSP dasar
Diperbarui 17 April: Kamar Bangunan, Pesanan, dan Layanan Lainnya
Diperbarui pada 14 April: Bangun Lapisan Kontrol, Implementasi Layanan Pengguna
Diperbarui pada 12 April: Bangun kamar, pesanan diterapkan
Diperbarui 11 April: Bangun Userdao
Diperbarui pada 10 April: Membangun Lapisan Dasar
Diperbarui pada 9 April: Konstruksi awal lapisan DAO
Diperbarui 8 April: Bangun kumpulan koneksi basis data
Diperbarui 7 April: Bangun proyek
Diperbarui pada 3 April: Kirim Analisis Persyaratan Proyek (Penamaan Proyek: Xhotel)
Diperbarui pada 1 April: Saat ini dalam tahap analisis permintaan, membangun model data dan desain awal proses bisnis
Diperbarui pada 30 Maret: Proyek CAT Studio baru saja selesai, dan QG Bootcamp memiliki tugas, jadi saya belum memulai
Bersiaplah untuk meringkas pengalaman proyek kucing terlebih dahulu, dan pahami beberapa masalah yang Anda temui sebelum menulis proyek.
Lisensi
Perangkat lunak ini hanya untuk komunikasi dan pembelajaran dan tidak dapat digunakan untuk tujuan komersial
Hak Cipta Huang Yuchao
Berlisensi di bawah lisensi Apache, versi 2.0 ("lisensi"); Anda tidak boleh menggunakan file ini kecuali sesuai dengan lisensi. Anda dapat memperoleh salinan lisensi di
http://www.apache.org/licenses/LICENSE-2.0
Kecuali diharuskan oleh hukum yang berlaku atau disepakati secara tertulis, perangkat lunak yang didistribusikan di bawah lisensi didistribusikan berdasarkan "sebagaimana adanya", tanpa jaminan atau ketentuan dalam bentuk apa pun, baik tersurat maupun tersirat. Lihat lisensi untuk bahasa spesifik yang mengatur izin dan batasan di bawah lisensi.