JavaSwing+SQLServer+Druid实现学生成绩管理系统(附报错解决)
一、项目简介
本次基于Java开发桌面版学生成绩管理系统,GUI界面采用Java Swing,数据库使用SQL Server,采用DAO分层开发模式,并引入Druid数据库连接池优化JDBC连接。主要实现账号登录、学生信息新增、删除、修改、姓名模糊查询、批量插入学生数据等功能,整体结构清晰,适合Java课程设计、期末大作业。
二、技术栈
-
前端界面:Java Swing
-
数据库:SQL Server
-
持久层:原生JDBC + DAO设计模式
-
性能优化:Druid数据库连接池
三、系统功能模块
-
用户登录:读取数据库用户表,校验账号密码,增加非空判断。
-
学生CRUD:完成学生新增、删除、修改、按学号查询。
-
模糊查询(核心特色):支持根据姓名片段检索学生信息,动态刷新表格。
-
批量插入:利用事务+批处理批量添加学生,保证数据一致性。
四、核心功能详解(模糊查询)
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等功能进一步完善项目。
更多推荐

所有评论(0)