一、项目简介

本次基于Java开发桌面版学生成绩管理系统,GUI界面采用Java Swing,数据库使用SQL Server,采用DAO分层开发模式,并引入Druid数据库连接池优化JDBC连接。主要实现账号登录、学生信息新增、删除、修改、姓名模糊查询、批量插入学生数据等功能,整体结构清晰,适合Java课程设计、期末大作业。

二、技术栈

  • 前端界面:Java Swing

  • 数据库:SQL Server

  • 持久层:原生JDBC + DAO设计模式

  • 性能优化:Druid数据库连接池

三、系统功能模块

  1. 用户登录:读取数据库用户表,校验账号密码,增加非空判断。

  2. 学生CRUD:完成学生新增、删除、修改、按学号查询。

  3. 模糊查询(核心特色):支持根据姓名片段检索学生信息,动态刷新表格。

  4. 批量插入:利用事务+批处理批量添加学生,保证数据一致性。

四、核心功能详解(模糊查询)

1. 功能简述

该功能为本系统核心特色功能。用户在主界面输入姓名或姓名片段,程序接收关键字后,通过DAO层向数据库发送LIKE模糊查询SQL,匹配对应学生数据,并自动刷新JTable表格展示结果;若无匹配数据,弹窗提示用户。解决了传统逐条翻找数据效率低下的问题。

2. DAO层核心SQL

String sql = "SELECT * FROM student WHERE stu_name LIKE ?"; pstmt.setString(1,"%"+name+"%");

3. 界面层逻辑

每次查询前清空表格旧数据,调用DAO获取集合,遍历集合动态添加至表格,避免数据重叠问题。

五、开发过程遇到的问题与解决方案

问题1:登录一直提示账号或密码错误

原因:前端登录代码对密码进行MD5加密,但是数据库存储的是明文密码,两边不一致。

解决:移除前端MD5加密,直接明文比对,快速跑通登录功能。

问题2:列名无效 birth_date

原因:Java代码SQL中包含生日字段,但是数据库student表并没有该字段。

解决:统一SQL,删除无效字段,保持Java字段与数据库表结构完全一致。

问题3:batch批量插入报红、参数不匹配

原因:SQL语句字符串被截断、占位符?数量和set参数数量不一致。

解决:重写完整INSERT语句,保证7个字段对应7个占位符,同时增加事务回滚机制。

六、项目总结

通过本次学生成绩管理系统开发,我熟练掌握Swing桌面开发、DAO分层思想、Druid连接池使用以及SQL Server增删改查。同时学会根据控制台报错快速定位BUG,理解事务、批处理、模糊查询的实际应用。非常适合Java初学者用来巩固面向对象与数据库相关知识。

后续可以增加分页查询、成绩多条件筛选、密码MD5加密、数据导出Excel等功能进一步完善项目。

更多推荐