91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java實現學生管理系統實例分析

發布時間:2022-07-08 14:14:00 來源:億速云 閱讀:243 作者:iii 欄目:開發技術

這篇“Java實現學生管理系統實例分析”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java實現學生管理系統實例分析”文章吧。

    學生管理系統

    前言:這個是大二做的課設(還是學生管理系統…),理論上雖然是4個人一組一起做的,但是,注意這個“但是”,還是我一個人承擔了所有…代碼和文檔基本都是我一個人寫的,當初直接肝得吐血,這也是為啥后面的 Web 版部分功能沒有完成的原因。

    項目介紹

    項目分為一個JavaSwing寫的GUI桌面應用和一個半成品的Web應用,下圖是項目的整體功能結構展示

    Java實現學生管理系統實例分析

    JavaSwing

    JavaSwing這里使用的是 MyBatis + Spring 的框架組合,后面發現使用 Spring 框架在 Swing 開發的程序上好像是一個錯誤。

    另外,JavaSwing 版里面可能還有一些邏輯上的未知 bug。

    功能展示

    1、登錄模塊

    Java實現學生管理系統實例分析

    2、系統設置模塊

    Java實現學生管理系統實例分析

    3、學生管理模塊

    學生添加

    Java實現學生管理系統實例分析

    學生列表

    Java實現學生管理系統實例分析

    4、班級管理模塊

    班級添加

    Java實現學生管理系統實例分析

    班級管理

    Java實現學生管理系統實例分析

    5、成績管理

    成績統計

    Java實現學生管理系統實例分析

    6、網頁版

    點擊后可以跳轉到瀏覽器的 http://localhost:8080 網址

    Java實現學生管理系統實例分析

    使用說明

    使用 IDEA 打開項目,項目的結構如下圖:

    Java實現學生管理系統實例分析

    啟動項目的話就運行 view 包里面的 LoginFrm

    Java實現學生管理系統實例分析

    遇到的問題

    使用Spring進行依賴注入遇到的問題

    Swing 是 Java 的一個進行 GUI 開發的包,在課設中我使用 Spring 對容器進行管理,但是在使用 Spring 注解進行容器依賴注入的時候出現了一個問題,依賴注入為 null,報錯如下:

    Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException

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

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

    在百度找了許久沒找到問題所在,排除了 Spring 配置文件寫錯、或者是沒加 @Service 注解等問題之后,我找到了網上的一個解釋,如下:

    在多線程時使用 @Autowired 總是獲取不到 bean。

    原因是:new thread 不在 Spring 容器中,也就無法獲得 Spring 中的 bean 對象

    JavaSwing 不是線程安全的,項目中一些地方是多線程運行的,許多 UI 線程在里面并發運行,所以在這些線程里面使用 Spring 注入失敗,因為它們不是 Spring 管理的線程

    而Spring在多線程的情況下是不允許使用注解注入依賴的,所以我們只能手動get到我們想要的bean對象,代碼如下:

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

    其實還可以通過配置線程池的方法管理,但是 Swing 我又不太熟,不知道它運行時有哪幾個線程。

    這個問題是我當初沒想到的,如果我知道的話就不會用 Spring 在Swing 上面了…因為自己每個 view 層的類上都要手動獲取依賴,比其實跟自己使用一個單例模式獲取 MyBatis 的依賴沒啥區別,使用了 Spring 反而更麻煩了一些

    Mybatis使用HashMap作為結果集出現的問題

    在編寫查找指定簽到方法的時候,我使用了List<HashMap<String,String>>作為返回值,但是它卻顯示錯誤,第一次是顯示空指針錯誤,然后我配置了一下@Results結果集,如下:

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

    但是它顯示格式轉換錯誤,于是我在控制臺輸出了一下查詢結果,發現結果是這樣的

    [{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}]

    HashMap里面的值從JSON字符串的形式變成了xxx=xxx的形式,property屬性值對應的是實體類的屬性,但是HashMap里面的key和vlaue并不能算屬性(是我想錯了),所以此時Mybatis就會自己設置一個屬性名,于是就變成了上面的結果。別問為啥不用xml文件的形式,當時時間不太夠,就直接貪方便用注解了

    解決方法:

    將上面的結果值重新處理一下,再賦給HashMap

    刪除帶外鍵關聯的數據時出現的問題

    項目中Service層報錯,如下:

    Cannot delete or update a parent row: a foreign key constraint fails (`ttms`.`s_attendance`, CONSTRAINT `student_attendance_foreign` FOREIGN KEY (`student_id`) REFERENCES `s_student` (`id`)); nested exception is java.sql.SQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`ttms`.`s_attendance`, CONSTRAINT `student_attendance_foreign` FOREIGN KEY (`student_id`) REFERENCES `s_student` (`id`))

    查看了一下錯誤信息,問題出在Dao層,一條刪除語句出現問題了,分析了一下原因,發現是設置了外鍵關聯,這導致我們無法刪除該條數據。

    解決方法:

    在刪除數據前先設置外鍵無效,如下:

    set foreign_key_checks = 0;

    然后此時可以執行刪除語句了

    刪除完之后再設置外鍵有效,如下:

    set foreign_key_checks = 1;

    這樣就完美地刪除了這條記錄了。

    JavaWeb

    JavaWeb 這里使用的是 SpringBoot + Spring Data JPA 的框架組合,頁面是 Thymeleaf 進行數據展示的,頁面上有一個統計頁面使用了 ECharts 進行數據可視化。

    前面說到 Web 是一個半成品,它已經實現了的功能主要有登錄、退出登錄、、修改密碼、學生管理、班級管理、成績管理的成績統計這幾個功能模塊。另外,它用的數據庫和 JavaSwing 版用的是同一個,所以它們之前的數據其實是互通的。

    總結:盡管頁面丑了點,但是它可以作為一個模板繼續開發下去。

    功能展示

    1、登錄界面

    Java實現學生管理系統實例分析

    2、學生管理

    學生列表

    Java實現學生管理系統實例分析

    學生添加

    Java實現學生管理系統實例分析

    3、班級管理

    班級列表

    Java實現學生管理系統實例分析

    班級添加

    Java實現學生管理系統實例分析

    4、成績統計

    Java實現學生管理系統實例分析

    Java實現學生管理系統實例分析

    Java實現學生管理系統實例分析

    使用說明

    項目結構圖:

    Java實現學生管理系統實例分析

    啟動的話直接進入 DemoApplication 類里面右鍵啟動就可以了。

    遇到的問題

    使用JPA更新數據庫時遇到的問題

    使用 Spring Data JPA 做 Web 端的持久化層的內容時,遇到了一個錯誤,如下:

    Executing an update/delete query

    在百度查找一番之后,發現是 JPA 如果執行 update 或 delete 等操作時,要在 Dao 或者 Service 層加上 @Transactiona l注解,代表這是一個事務級別的操作,這相當于 JPA 的一個使用規范吧,因為 JPA 要求,&rsquo;沒有事務支持,不能執行更新和刪除操作。

    以上就是關于“Java實現學生管理系統實例分析”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    双柏县| 旌德县| 扎鲁特旗| 保亭| 如皋市| 全椒县| 苏尼特右旗| 望都县| 高雄市| 三亚市| 汉寿县| 浮山县| 临桂县| 焉耆| 平邑县| 承德市| 富阳市| 平舆县| 大关县| 香港| 辰溪县| 水城县| 甘孜县| 谢通门县| 略阳县| 车致| 建昌县| 错那县| 汾阳市| 宝兴县| 博白县| 康平县| 白水县| 武川县| 志丹县| 怀化市| 平湖市| 德令哈市| 盐津县| 广灵县| 许昌县|