學弟讓我幫忙寫一個學生管理系統的后端,我直接上科技

??📝個人主頁:哈__

期待您的關注?

目錄

一、飛算AI簡介

二、系統開發

2.1 需求提出?

2.2 系統模塊的設計?

2.3 數據庫表格設計

2.4 接口規范設計

2.5 源碼生成?

三、總結


學弟這兩天有一個小組合作的任務,應該是培訓吧要寫一個學生管理系統,他不想做讓我幫忙寫一個后端,本來不想寫的無奈學弟給的到位,作為一名后端開發程序員,這樣的任務實在是 太簡單,自己寫又太麻煩,干脆上科技。

我看到了IDEA右側的一個插件,飛算AI,我靈機一動,很快就交付了作業。

一、飛算AI簡介

飛算JavaAI 是飛算科技于2025年1月發布的全球首款聚焦Java語言的智能開發助手。該工具通過自然語言或語音輸入開發需求,可自動完成需求分析、軟件設計及完整工程代碼生成全流程,輸出包含配置類文件、Java源代碼目錄、資源文件及測試資源在內的整套工程源碼。相較于片段式代碼生成工具,其完整工程代碼生成能力使開發效率提升10倍,有效降低重復編碼工作量,助力開發者聚焦業務邏輯創新與系統架構優化。

詳細說明文檔參考鏈接:產品簡介 | JavaAI

?插件在這里我已經提前安裝好了。

二、系統開發

飛算AI提供了四種使用場景。

模塊用途
智能引導智能引導模塊可用于代碼生成
Java chatJava chat 通過自然語言交互為開發者提供全流程編碼支持。系統具備代碼智能生成、多維度上下文關聯、版本快照回溯等核心能力,覆蓋需求分析、代碼優化、缺陷修復等典型研發場景。此外,還提供代碼解釋、生成單元測試、優化現有代碼、補全代碼以及提出優化建議,助您高效完成編程任務。您可以使用Java chat幫您分析和優化現有的項目工程和代碼重構等操作。
智能問答無論是需要解釋代碼、添加代碼注釋,還是生成單元測試,飛算JavaAI都能助您一臂之力。此外,在遇到編譯失敗等問題時,您只需選中相應的錯誤代碼或錯誤日志信息,并通過飛算JavaAI插件啟動對話,提供您的問題詳情。飛算JavaAI將為您提供解決方案和指導,幫助您快速克服難題。這樣的支持確保了您的開發流程更加順暢高效。
SQL chatSQL chat 它利用自然語言處理技術將自然語言問題轉化為SQL查詢。作為用戶,您只需簡單地輸入您的問題,SQL chat就能幫您自動生成相應的SQL查詢。

這里主要是使用到了智能引導,來看看飛算AI的項目解析和生成能力吧。

2.1 需求提出?

這里我提出了需求,我沒有進行需求描述,一切按照他自己理解來。

接下來飛算AI就給出了他自己對于學生管理系統的理解。他將任務分為十六個需求點,將任務切割以便于我們進行調整,看起來他對于項目的理解還算到位,就按照這個思路讓他開始設計。

2.2 系統模塊的設計?

這里總共設計了八個接口實現十六個任務點。功能確實對應具體的模塊,感覺項目不會有什么嚴重的耦合。

2.3 數據庫表格設計

接著我們生成對應的數據庫表格。總共生成了十二個表格,十二個表格不在一一展示了。說實話,他的表格設計能力還算可以。數據庫設計可以分為兩類,第一種是基于已經存在的數據庫進行設計,這時候會分析我們的數據庫表格,進行專門的定制。還有一種就是新建數據庫進行設計,我們就是完全遵循飛算AI給出的SQL進行表格創建,這里我選擇的是新創建數據庫。

CREATE TABLE users (user_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '用戶ID',username VARCHAR(50) NOT NULL UNIQUE COMMENT '用戶名',password VARCHAR(255) NOT NULL COMMENT '密碼',email VARCHAR(100) UNIQUE COMMENT '郵箱',phone_number VARCHAR(20) UNIQUE COMMENT '手機號',role ENUM('teacher', 'student', 'admin') NOT NULL COMMENT '用戶角色',create_by INT COMMENT '創建人',create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',update_by INT COMMENT '修改人',update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間'
) COMMENT='用戶管理';CREATE TABLE students (student_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '學生ID',user_id INT NOT NULL COMMENT '用戶ID',name VARCHAR(50) NOT NULL COMMENT '姓名',age INT COMMENT '年齡',gender ENUM('male', 'female') COMMENT '性別',major VARCHAR(100) COMMENT '專業',class_id INT COMMENT '班級ID',create_by INT COMMENT '創建人',create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',update_by INT COMMENT '修改人',update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間'
) COMMENT='學生信息管理';CREATE TABLE teachers (teacher_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '教師ID',user_id INT NOT NULL COMMENT '用戶ID',name VARCHAR(50) NOT NULL COMMENT '姓名',gender ENUM('male', 'female') COMMENT '性別',title VARCHAR(50) COMMENT '職稱',department VARCHAR(100) COMMENT '所屬部門',create_by INT COMMENT '創建人',create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',update_by INT COMMENT '修改人',update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間'
) COMMENT='教師信息管理';CREATE TABLE courses (course_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '課程ID',name VARCHAR(100) NOT NULL COMMENT '課程名稱',description TEXT COMMENT '課程描述',teacher_id INT COMMENT '教師ID',create_by INT COMMENT '創建人',create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',update_by INT COMMENT '修改人',update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間'
) COMMENT='課程信息管理';CREATE TABLE classes (class_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '班級ID',name VARCHAR(50) NOT NULL COMMENT '班級名稱',grade VARCHAR(20) COMMENT '年級',create_by INT COMMENT '創建人',create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',update_by INT COMMENT '修改人',update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間'
) COMMENT='班級信息管理';CREATE TABLE scores (score_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '成績ID',student_id INT NOT NULL COMMENT '學生ID',course_id INT NOT NULL COMMENT '課程ID',score DECIMAL(5,2) COMMENT '分數',teacher_id INT COMMENT '教師ID',create_by INT COMMENT '創建人',create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',update_by INT COMMENT '修改人',update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間'
) COMMENT='成績管理';CREATE TABLE announcements (announcement_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '公告ID',title VARCHAR(100) NOT NULL COMMENT '公告標題',content TEXT NOT NULL COMMENT '公告內容',create_by INT COMMENT '創建人',create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',update_by INT COMMENT '修改人',update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間'
) COMMENT='公告管理';CREATE TABLE notifications (notification_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '通知ID',sender_id INT NOT NULL COMMENT '發送者ID',receiver_id INT NOT NULL COMMENT '接收者ID',title VARCHAR(100) NOT NULL COMMENT '通知標題',content TEXT NOT NULL COMMENT '通知內容',is_read BOOLEAN DEFAULT FALSE COMMENT '是否已讀',send_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '發送時間',create_by INT COMMENT '創建人',create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',update_by INT COMMENT '修改人',update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間'
) COMMENT='通知管理';CREATE TABLE schedules (schedule_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '課表ID',teacher_id INT NOT NULL COMMENT '教師ID',student_id INT COMMENT '學生ID',course_id INT NOT NULL COMMENT '課程ID',class_id INT NOT NULL COMMENT '班級ID',day_of_week ENUM('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday') NOT NULL COMMENT '星期幾',start_time TIME NOT NULL COMMENT '開始時間',end_time TIME NOT NULL COMMENT '結束時間',location VARCHAR(100) COMMENT '地點',create_by INT COMMENT '創建人',create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',update_by INT COMMENT '修改人',update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間'
) COMMENT='課表管理';CREATE TABLE leave_requests (request_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '請假申請ID',student_id INT NOT NULL COMMENT '學生ID',teacher_id INT COMMENT '教師ID',reason TEXT NOT NULL COMMENT '請假原因',start_date DATE NOT NULL COMMENT '開始日期',end_date DATE NOT NULL COMMENT '結束日期',status ENUM('pending', 'approved', 'rejected') DEFAULT 'pending' COMMENT '狀態',create_by INT COMMENT '創建人',create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',update_by INT COMMENT '修改人',update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間'
) COMMENT='請假申請管理';CREATE TABLE attendance_records (record_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '考勤記錄ID',student_id INT NOT NULL COMMENT '學生ID',course_id INT NOT NULL COMMENT '課程ID',date DATE NOT NULL COMMENT '日期',status ENUM('present', 'absent') NOT NULL COMMENT '狀態',create_by INT COMMENT '創建人',create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',update_by INT COMMENT '修改人',update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間'
) COMMENT='考勤記錄管理';CREATE TABLE logs (log_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '日志ID',user_id INT COMMENT '用戶ID',action VARCHAR(100) NOT NULL COMMENT '操作',details TEXT COMMENT '詳情',ip_address VARCHAR(45) COMMENT 'IP地址',log_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '日志時間'
) COMMENT='操作日志管理';

2.4 接口規范設計

飛算AI在設計完數據庫表格后,會進行接口的規范設計,如果覺得這些規范不合適,我們可以自行調整。

2.5 源碼生成?

將之前的步驟設計完后,就可以生成源碼了,不過源碼生成我覺得有一點慢。但比我自己去寫好

隨后可以生成對應的代碼結構。看起來沒問題,還可以模塊的劃分也比較清晰。

看一下生成的用戶管理下的用戶注冊功能。基本的校驗邏輯都有,同時他竟然還在方法上加上了事務管理注解,看起來這個AI還是很強大的。

    @Override@Transactionalpublic RestResult register(UserRegisterDTO userRegisterDTO) {if (userRepository.findByUsername(userRegisterDTO.getUsername()) != null) {return new RestResult("000001", "用戶名已存在", null);}if (userRegisterDTO.getEmail() != null && userRepository.findByEmail(userRegisterDTO.getEmail()) != null) {return new RestResult("000001", "郵箱已存在", null);}if (userRegisterDTO.getPhoneNumber() != null && userRepository.findByPhoneNumber(userRegisterDTO.getPhoneNumber()) != null) {return new RestResult("000001", "手機號已存在", null);}UserDO user = new UserDO();user.setUsername(userRegisterDTO.getUsername());user.setPassword(userRegisterDTO.getPassword());user.setEmail(userRegisterDTO.getEmail());user.setPhoneNumber(userRegisterDTO.getPhoneNumber());user.setRole(Role.valueOf(userRegisterDTO.getRole()));user.setCreateTime(new Date());user.setUpdateTime(new Date());userRepository.save(user);return new RestResult("000000", "調用成功", user);}

?其他模塊我就不再展示了。

三、總結

用了這款AI,不僅可以在項目上幫助我們,其實在實際的開發過程中,也是有幫助的,飛算AI提供的其他模塊同樣強大,SQL chat模塊可以幫我們處理復雜的SQL,我感覺相比于Cursor,飛算AI作為一款插件,功能是同樣強大的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/88605.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/88605.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/88605.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《P3038 [USACO11DEC] Grass Planting G》

題目描述 給出一棵有 n 個節點的樹,有 m 個如下所示的操作: 將兩個節點之間的 路徑上的邊 的權值均加一。 查詢兩個節點之間的 那一條邊 的權值,保證兩個節點直接相連。 初始邊權均為 0。 輸入格式 第一行兩個整數 n,m,含義…

NestJS

文章的地址 NestJShttps://equinox-primrose-ceb.notion.site/NestJS-22d4b8031e0f80b39fc7fe1ff111f802 不產生測試的.spec.ts文件的配置 "generateOptions": {"spec": false }創建模型 nest g m xx 創建服務 nest g s xx 創建處理 nest g c xx CRU…

vue入門學習教程

一、介紹 vue是一款用于構建用戶界面的 JavaScript 框架。基于標準 HTML、CSS 和 JavaScript 構建&#xff0c;并提供了一套聲明式的、組件化的編程模型&#xff0c;幫助你高效地開發用戶界面。 二、使用和安裝 方法1&#xff1a;在html代碼中直接使用<script>導入&…

C++類對象多態基礎語法【超詳細】

文章目錄前言1. 虛函數1.1 現象1.2 多態1.3 析構函數1.4 override和final1.5 重載、隱藏、重寫對比2. 抽象類2.1 抽象類特性2.2 抽象類的應用場景3. 多態實現的底層原理4. 靜態綁定和動態綁定5. 總結前言 多態是面向對象三大特性之一&#xff0c;也是細節最多的語法之一。學習…

Flask 入門到實戰(3):用 SQLAlchemy 優雅操作數據庫

深入理解 Flask ORM&#xff1a;用 SQLAlchemy 優雅操作數據庫一、前言&#xff1a;什么是 ORM&#xff1f;為什么要用它&#xff1f; 傳統數據庫操作要寫 SQL&#xff0c;比如&#xff1a; SELECT * FROM users WHERE id 1;而使用 ORM 后&#xff0c;你可以這樣寫&#xff1a…

源表=電源+數字表?一文看懂SMU源表 2025-04-14

源表(Source Meter Unit, SMU)廣泛用于半導體器件、材料、醫療、發光器件與光通信等行業,測量器件的伏安(I-V)特性曲線、絕緣材料的電阻值(電阻率)、電容的絕緣電阻(漏電流)、光電器件的暗電流或者L-I-V等。 源表的名稱已經清晰的告訴我們,它包含了高精度電源輸出和…

單片機STM32F103:DMA的原理以及應用

STM32F103系列微控制器&#xff08;基于ARM Cortex-M3內核&#xff09;集成了**DMA&#xff08;Direct Memory Access&#xff0c;直接內存訪問&#xff09;**控制器&#xff0c;用于在存儲器與外設、存儲器與存儲器之間高效傳輸數據&#xff0c;減少CPU的干預&#xff0c;從而…

Webview 中可用的 VS Code 方法

在 VS Code Webview 的 HTML 中&#xff0c;不能直接調用 VS Code 的 API&#xff08;如 vscode.window.showInformationMessage&#xff09;&#xff0c;但可以通過 acquireVsCodeApi() 獲取一個受限的 vscode 對象&#xff0c;用于與插件主程序通信。以下是詳細說明和示例&am…

Qt:布局管理器Layout

目錄 布局管理器 QVBoxLayout QHBoxLayout QGirdLayout QFormLayout Spacer 布局管理器 在以往的界面操作上&#xff0c;都是程序員手動拖動控件來布局&#xff0c;這種方式有一些不足之處&#xff0c;比如不能很好的把握控件之間的距離&#xff0c;以及控件的大小&…

【Java編程動手學】深入剖析Java網絡編程:原理、協議與應用

文章目錄一、引言二、計算機網絡基礎1、計算機網絡的概念2、網絡地址的重要性三、套接字編程&#xff1a;網絡通信的基石1、套接字的概念2、TCP通信編程示例四、TCP通信編程&#xff1a;可靠的數據傳輸1、TCP協議的特點2、實際應用中的TCP通信五、UDP通信編程&#xff1a;高效的…

vue3.2 前端動態分頁算法

文章目錄背景思路頁面情況核心代碼小結效果背景 1. 后臺接口只是動態返回一個數組的數據&#xff0c;前端需要根據數據量的大小判斷是否需要分頁&#xff0c;頁面高度固定2. 頁面根據頁數大小有不同的展示a. 只有一頁 頭部 內容 統計 尾部b. 多頁i. 第一頁 頭部 內容 尾…

UC瀏覽器PC版自2016年后未再更新不支持vue3

win uc瀏覽器&#xff0c;點擊頁面觸發異常。UC瀏覽器PC版自2016年后未再更新&#xff08;最新版本停留在Chromium 50內核&#xff09;。其內置內核版本較低&#xff08;如Trident/Blink舊版&#xff09;&#xff0c;無法支持Vue 3等現代前端框架的語法特性&#xff08;如ES6、…

亞古數據:澳大利亞公司的ABN和ACN號碼是什么?

在跨國商業的迷宮中&#xff0c;了解目標市場的公司注冊細節是一項不可或缺的技能。對于與中國企業有業務往來的朋友們來說&#xff0c;澳大利亞這片充滿機遇的土地上&#xff0c;兩個縮寫——ABN與ACN&#xff0c;如同解鎖合作之門的密鑰&#xff0c;顯得尤為重要。今天&#…

LangChain框架 Prompts、Agents 應用

目錄 (Prompts)提示作用 Prompts 常見操作 基礎 PromptTemplate 使用 Few-shot 提示模板 ChatPromptTemplate (對話提示模板) (Agents)代理作用 Agents 常見操作 基礎 Agent 使用 自定義工具 Agent 高級應用示例 帶記憶的對話代理 使用本地模型的代理 結構化輸出代…

模擬實現unordered_map

1.定義unordered_map 是 C 標準庫中的哈希表容器&#xff0c;特點是無序存儲、平均 O (1) 時間復雜度的插入 / 查找 / 刪除操作。其核心原理是通過哈希函數將關鍵字映射到哈希桶&#xff08;bucket&#xff09;&#xff0c;再通過鏈表或紅黑樹處理哈希沖突。2.實現原理1. 哈希表…

史上最詳細Java并發多線程(面試必備,一篇足矣)

第一章&#xff1a;線程基礎 1.1 線程與進程 進程&#xff1a;系統資源分配的基本單位&#xff0c;擁有獨立的內存空間 線程&#xff1a;CPU調度的基本單位&#xff0c;共享進程內存空間 關系&#xff1a;一個進程可包含多個線程&#xff0c;線程切換成本遠低于進程 1.2 線程的…

【DataFlow】數據合成流水線工具

1.整體解讀 核心思想&#xff1a;以數據為中心的AI&#xff08;Data-Centric AI&#xff09; DataFlow 的核心目標是通過一系列自動化“流水線”&#xff08;Pipelines&#xff09;來處理和生成高質量的數據&#xff0c;從而提升大語言模型&#xff08;LLM&#xff09;在特定領…

Hangfire 調用報錯解決方案總結

System.ArgumentNullException: 值不能為 null 錯誤在使用 Hangfire 時確實是一個常見問題&#xff0c;特別是在配置 Hangfire 服務器時。問題分析這個錯誤通常發生在以下情況&#xff1a;沒有正確配置 Hangfire 服務器隊列配置缺失或不正確連接字符串配置問題解決方案要點正確…

MySQL的使用

MySQL的使用一、mysql中的周邊命令1. 檢查版本2. 查看字符集3. 查看客戶端連接4. 查看最后一條警告消息二、數據庫、數據表的管理1. 語法規則2. 數據庫2.1 查看數據庫2.2 創建數據庫2.3 選擇數據庫2.4 查看創建數據庫命令2.5 創建庫時添加字符集2.6 修改數據庫字符集2.7 刪除數…

2025Nginx最新版講解/面試

維護系統多服務器部署&#xff0c;將我們請求代理到各個服務器。代理正向代理&#xff0c;代理對象是我們的客戶端&#xff0c;目標對象不知道我們用戶。VPN就是典型的正向代理。反向代理&#xff0c;代理對象是服務端&#xff0c;用戶不知道服務端具體信息。而這正是Nginx所做…