当前位置: 首页 > news >正文

学弟让我帮忙写一个学生管理系统的后端,我直接上科技

  📝个人主页:哈__

期待您的关注 

目录

一、飞算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.dtcms.com/a/274000.html

相关文章:

  • 数据结构 之 【链式二叉树】(C语言实现二叉树的前序中序后序层序遍历,节点个数、树的高度、第K层的节点个数、查找、完全二叉树的判别、销毁创建二叉树)
  • 操作系统-进程
  • 加工进化论:SPL 一键加速日志转指标
  • 适配多场景,工业显示器让操作更高效
  • 2025最新版Docker讲解/面试/命令/容器化技术
  • 当信任上链解码区块链溯源系统开发逻辑与产业变革
  • 【第四节】ubuntu server安装docker
  • 专题:2025云计算与AI技术研究趋势报告|附200+份报告PDF、原数据表汇总下载
  • 探索飞算 JavaAI 进阶:解锁高效Java开发的新维度
  • VLM-R1 + GRPO 算法完整复现全过程日志
  • 在HTML中CSS三种使用方式
  • 飞算JavaAI:重塑Java开发的“人机协同“新模式
  • vue3+node.js+mysql写接口(二)
  • 优学教育实战03跟进管理
  • tensor
  • axios 与 fetch 的区别
  • C++前缀和与差分的深度探索
  • “SRP模型+”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI 指数的生态质量评价及拓展应用
  • K8s Service 终极解析:源码、性能、故障排查全攻略
  • 【VScode | 快捷键】全局搜索快捷键(ctrl+shift+f)失效原因及解决方法
  • Github创建仓库并通过VS Code推送项目
  • FPGA开发一个精确反馈控制算法 实现动态调控电磁反馈,控制流过线圈的电流,产生不同大小不同方向的磁力 电路结构设计PCB版图的绘制
  • 小白学Python,标准库篇——随机库、正则表达式库
  • Rail开发日志_5
  • 物联网与互联网融合生态
  • 鸿蒙 Secure Boot 全流程解析:从 BootROM 到内核签名验证的实战指南
  • 使用Selenium自动化获取抖音创作者平台视频数据
  • 深入解析:UPF/PGW-U如何通过PPP/L2TP隧道实现终端PAP/CHAP接入
  • [python]在drf中使用drf_spectacular
  • FPGA通信设计十问