Rumah  >  Artikel  >  Java  >  Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

WBOY
WBOYke hadapan
2023-05-09 09:04:14800semak imbas

    Sistem Pengurusan Pelajar

    Kata Pengantar: Ini adalah reka bentuk kursus untuk tahun kedua (masih sistem pengurusan pelajar...). adalah 4 orang setiap Ia telah dilakukan bersama-sama dengan pasukan, tetapi, perhatikan ini "tetapi", saya masih bertanggungjawab untuk semua kod dan dokumen... Saya pada dasarnya menulis kod dan dokumen sendiri saya sangat bimbang pertama saya muntah darah Inilah sebabnya beberapa fungsi versi Web kemudiannya Sebab tidak disiapkan.

    Pengenalan Projek

    Projek ini dibahagikan kepada aplikasi desktop GUI yang ditulis dalam JavaSwing dan aplikasi Web separuh siap Rajah berikut menunjukkan struktur fungsi keseluruhan projek

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    JavaSwing

    JavaSwing menggunakan gabungan rangka kerja MyBatis + Spring Kemudian saya mendapati bahawa menggunakan rangka kerja Spring nampaknya merupakan satu kesilapan dalam program yang dibangunkan dengan Swing.

    Selain itu, mungkin terdapat beberapa pepijat logik yang tidak diketahui dalam versi JavaSwing.

    Paparan fungsi

    1. Modul log masuk

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    Modul tetapan sistem

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    3. Modul pengurusan pelajar

    Tambahan pelajar

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    Senarai pelajar

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    4. Modul pengurusan kelas

    Tambahan kelas

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    Pengurusan kelas

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    5

    Statistik skor

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    6 Versi web

    Klik untuk melompat ke pelayar

    http://localhost:8080 网址

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    Arahan penggunaan

    Gunakan IDEA untuk membuka projek Struktur projek adalah seperti berikut:

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    Untuk memulakan projek, jalankan. pakej paparan. LoginFrm

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    Masalah yang dihadapi

    Masalah yang dihadapi semasa menggunakan Spring untuk suntikan pergantungan

    Swing ialah platform Java untuk pembangunan GUI Pakej, dalam reka bentuk kursus, saya menggunakan Spring untuk mengurus bekas, tetapi masalah berlaku apabila menggunakan anotasi Spring untuk suntikan kebergantungan bekas Suntikan kebergantungan adalah batal, dan ralat telah dilaporkan seperti berikut:

    Pengecualian dalam urutan "AWT-EventQueue-0" java.lang.NullPointerException

    at com.view.LoginFrm.loginAct(LoginFrm.java:187)

    at com.view.LoginFrm$2 .actionPerformed(LoginFrm .java:96)

    Selepas mencari di Baidu untuk masa yang lama tetapi tidak dapat menemui masalah, saya menemui penjelasan dalam talian selepas menolak isu seperti penulisan konfigurasi Spring yang salah fail atau kegagalan untuk menambah anotasi @Service , seperti berikut:

    Menggunakan @Autowired dalam multi-threading sentiasa gagal untuk mendapatkan kacang.

    Sebabnya ialah: benang baharu tiada dalam bekas Spring, jadi objek kacang dalam Spring tidak boleh diperoleh

    JavaSwing tidak selamat untuk benang Sesetengah tempat dalam projek dijalankan berbilang benang , dan banyak utas UI Ia berjalan serentak di dalamnya, jadi menggunakan suntikan Spring dalam utas ini gagal kerana ia bukan utas diurus Spring

    dan Spring tidak membenarkan anotasi digunakan untuk menyuntik kebergantungan dalam situasi berbilang benang , jadi kita hanya boleh secara manual Untuk mendapatkan objek kacang yang kita inginkan, kodnya adalah seperti berikut:

    private final ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
    private final AdminService adminService = (AdminServiceImpl)context.getBean("AdminServiceImpl");

    Malah, ia juga boleh diuruskan dengan mengkonfigurasi kumpulan benang, tetapi saya tidak biasa dengan Swing dan don tidak tahu berapa banyak benang yang ada semasa berjalan.

    Masalah ini adalah sesuatu yang saya tidak jangkakan pada mulanya Jika saya tahu mengenainya, saya tidak akan menggunakan Spring on Swing...kerana saya perlu mendapatkan kebergantungan secara manual untuk setiap kelas lapisan paparan. yang jauh lebih teruk daripada menggunakannya sendiri. Tiada perbezaan dalam mendapatkan kebergantungan MyBatis dalam mod tunggal, tetapi menggunakan Spring lebih menyusahkan

    Masalah dengan Mybatis menggunakan HashMap sebagai set hasil

    Apabila menulis kaedah untuk mencari log masuk yang ditentukan, saya menggunakan List> sebagai nilai pulangan, tetapi ia menunjukkan ralat pada kali pertama ia menunjukkan ralat penunjuk nol, kemudian saya mengkonfigurasi @Results keputusan ditetapkan seperti berikut:

    @Results({
    @Result(property = "key",column = "attendance_num",jdbcType = JdbcType.INTEGER),
    @Result(property = "value",column = " attendance_date",jdbcType = JdbcType.VARCHAR)})

    Tetapi ia menunjukkan ralat penukaran format, jadi saya mengeluarkan hasil pertanyaan pada konsol dan mendapati keputusannya adalah seperti ini

    [{value=2018-05-17, key=1}, {value=2018-04-17, key=1}, {value=2018-04-18, key=1}, {value= 2018- 04-19, key=3}, {value=2018-04-20, key=1}, {value=2018-04-21, key=1}, {value=2018-05-03, key= 1} ]

    Nilai dalam HashMap telah berubah daripada bentuk rentetan JSON kepada bentuk xxx=xxx Nilai atribut sifat sepadan dengan atribut kelas entiti, tetapi kunci dan vlaue dalam HashMap tidak boleh dikira Atribut (saya fikir salah), jadi Mybatis akan menetapkan nama atribut dengan sendirinya pada masa ini, jadi ia menjadi hasil di atas. Jangan tanya mengapa ia tidak dalam bentuk fail xml saya tidak mempunyai masa yang mencukupi pada masa itu, jadi saya hanya menggunakan anotasi untuk kemudahan

    Penyelesaian:

    Proses semula. nilai hasil di atas dan tetapkan kepada HashMap

    Masalah yang berlaku apabila memadamkan data yang dikaitkan dengan kunci asing

    Lapisan perkhidmatan dalam projek melaporkan ralat seperti berikut:

    Tidak boleh memadam atau mengemas kini baris induk: kekangan kunci asing gagal (`ttms`.`s_attendance`, CONSTRAINT `student_attendance_foreign` FOREIGN KEY (`student_id`) RUJUKAN `s_student` (`id`)); sql.SQLItegrityConstraintViolationException: Tidak dapat memadam atau mengemas kini baris induk: kekangan kunci asing gagal (`ttms`.`s_attendance`, CONSTRAINT `student_attendance_foreign` FOREIGN KUNCI (`student_id`) RUJUKAN `id`student)`(`id`student)`

    Semak maklumat ralat, masalahnya terletak pada lapisan Dao Terdapat masalah dengan kenyataan padam Selepas menganalisis sebabnya, didapati perkaitan kunci asing ditetapkan, yang menghalang kita daripada memadam data.

    Penyelesaian:

    Tetapkan kunci asing menjadi tidak sah sebelum memadamkan data, seperti berikut:

    tetapkan foreign_key_checks = 0;

    Kemudian anda boleh melaksanakan kenyataan padam pada masa ini

    Selepas pemadaman, tetapkan kunci asing menjadi sah, seperti berikut:

    set foreign_key_checks = 1;

    Dengan cara ini Rekod ini telah dipadamkan dengan sempurna.

    JavaWeb

    JavaWeb Gabungan rangka kerja SpringBoot + Spring Data JPA digunakan di sini Halaman menggunakan Thymeleaf untuk paparan data Terdapat halaman statistik pada halaman yang menggunakan ECharts untuk visualisasi data.

    Seperti yang dinyatakan sebelum ini, Web ialah produk separuh siap Fungsi yang telah dilaksanakan terutamanya termasuk modul berfungsi berikut: log masuk, log keluar, penukaran kata laluan, pengurusan pelajar, pengurusan kelas dan pengurusan skor. Di samping itu, pangkalan data yang digunakan adalah sama dengan versi JavaSwing, jadi data sebelumnya mereka sebenarnya boleh dikendalikan.

    Ringkasan: Walaupun halaman itu agak hodoh, ia boleh digunakan sebagai templat untuk pembangunan berterusan.

    Paparan fungsi

    1 antara muka log masuk

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    2. Pengurusan pelajar

    Senarai pelajar

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    Tambahan pelajar

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    3. Pengurusan kelas

    Senarai kelas

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    Tambahan kelas

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    4 Statistik markah

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.

    <.>

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.Arahan penggunaan

    Rajah struktur projek:

    Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.Untuk bermula, masukkan sahaja kelas DemoApplication dan klik kanan untuk bermula .

    Masalah yang dihadapi

    Masalah yang dihadapi semasa menggunakan JPA untuk mengemas kini pangkalan data

    Apabila menggunakan Spring Data JPA untuk melakukan kandungan lapisan kegigihan di sebelah Web, ralat telah ditemui. Seperti berikut:

    Melaksanakan pertanyaan kemas kini/padam

    Selepas mencari di Baidu, saya mendapati bahawa ia adalah JPA Jika anda melakukan operasi kemas kini atau memadam, anda perlu menggunakan Dao atau Perkhidmatan Anotasi @Transactional ditambahkan pada lapisan, yang bermaksud bahawa ini ialah operasi peringkat transaksi Ini bersamaan dengan spesifikasi penggunaan JPA, kerana JPA memerlukan operasi kemas kini dan pemadaman tidak boleh dilakukan tanpa transaksi. sokongan.

    Atas ialah kandungan terperinci Menganalisis kes sistem pengurusan pelajar yang dilaksanakan di Jawa.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam