Java实现基于SQL server的图形化图书管理系统
一、前言
项目完成于2021/7/22,文章写于今天2021/8/20。开学大四,暑假目前随便找了个公司实习,做Java开发,发现自己的水平还远远达不到公司要求,因为本身是信息与计算科学专业的,属于数学类专业,相对于其他软件工程的实习生发现我欠缺的知识太多,开始学习Maven和Spring框架等等,现在想重构之前的项目,来总结一下经验。
这个项目是大三下学期的课程设计,要求一个图书管理系统,并且使用swing图形组件以及能使用数据库进行保存数据和增删改查。我和两个队友一起完成了这个项目,在班里拿到了比较好的成绩(基于初学者来说还不错),很多同学对于做这个项目表示很想抄一份,所以我也决定分享出来供大家参考学习。
二、运行环境
JDK:Java8(我用的),Java14(队友用的) 开发工具:eclipse2020.6 数据库:SQLserver2017(我,由于2019安装失败妥协于2017版本),SQLserver2019(队友) 额外的jar包:jdbc(这个不用多说),commons-codec-1.15.jar(用来MD5加密的) 数据库配置(重点):数据库库名:BMS ;表名:book,record, uuser
use BMS CREATE TABLE record( --借书记录表,依赖于uuser和book snum bigint Identity(20210000000,1) PRIMARY KEY, --流水号 BN bigint Foreign Key References book(BN) not null, --图书编号 id bigint Foreign Key References uuser(id) not null, --借阅者学号 ldate date not null , --借书日期 bdate date --还书日期,未还即为null )
USE BMS CREATE TABLE uuser( id bigint PRIMARY KEY, uname varchar(20) not null, upassword char(6) default 123456 not null, uadmin int default 0 not null , --权限等级0为读者,大于0为管理员 idcard char(18) not null --身份证号 ltwice int not null default 5 --可借阅次数 )
三、实现功能(简略)
1.用户登录
如图所示功能 以及一个隐藏登录方式,通过ctrl+alt+enter组合键以及正确的用户密码登录,进入超级管理员界面,这个超级管理员账户是写在代码里的,不存在数据库里。
KeyAdapter keyad = new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.isControlDown() && e.isAltDown() && e.getKeyCode() == KeyEvent.VK_ENTER) { type = 2; login1(); } // 组合键 if (!e.isControlDown() && !e.isAltDown() && e.getKeyCode() == KeyEvent.VK_ENTER) login(); } };
public static boolean checkpassord(String id, String upassword) { if (id.equals("superadmin2018") && upassword.equals("superpassword2018")) { return true; } else { return false; } }
2.读者界面
后面两部分界面为同组成员完成,与主界面风格有些不同。
3.管理员界面
管理员界面如图所示
4.超级管理员界面
交作业最后一晚上我额外补充的,就把前面的界面拿来粘贴修改了一下,没有主界面
四、过程中遇到的问题以及解决方案
1.验证码功能
参考于博客园的一篇文章,直接复制来了验证码类的代码,并且直接套用了登录界面的图形进行修改
2.模态窗口设置
关于 Modal 窗体
3.对用户密码进行MD5加密
4.设置Jpanel的背景图片
五、存在问题
1.代码耦合度高,没有框架
其中有很多代码是过程中的测试代码,由于太乱,自己也不敢随便删了