图书馆管理系统重构(数据库版)

Posted 没谱的曲

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图书馆管理系统重构(数据库版)相关的知识,希望对你有一定的参考价值。

前言

之前和同学合作开发了一个通过I/O流实现的图书馆管理系统,具体可以看我之前写的博客(Java实战-基于I/O流设计的图书馆管理系统项目总结),在学习了数据库之后,我们基于之前的项目,合作完成了这一个带数据库版本的图书馆管理系统。
两位和我合作的同学博客:小张报道的博客隔壁皮皮王的博客

项目具体内容

本次的图书馆管理系统的基本功能大体可以参考之前I/O流版本的图书馆管理系统所具有的功能(Java实战-基于I/O流设计的图书馆管理系统项目总结)。
省流小助手:

数据库

因为本次项目需要用到mysql数据库,我们需要在项目开始前设计好数据库表的内容,我具体设计了四个表(这里设计表的时候我借鉴了博主LeKie1的博文图书馆管理系统(Java Mysql)),分别为:

  • book表:存放图书馆中书籍的信息,包括书籍编号、ISBN、书名、书籍价格、作者、出版社、书籍类型和借出状态
  • admin表:存放管理员信息,包括管理员id、管理员用户名、管理员登录的密码
  • user表:存放用户信息,包括用户id、用户名、用户密码、用户性别、用户的电话和用户类型
  • borrow表(借还书日志),日志id、书籍编号、用户id、借书时间和还书时间

表内容设置具体如下图所示:

代码部分

在学习了三层架构后,本次项目我们采用了三层架构的设计,具体代码结构比之前更加清晰,提高了代码可读可写性,方便了代码的开发和纠错,具体的代码结构如下图所示:

具体代码内容过多,我会将内容打包发到网盘在文章最后分享出来,这里分享两个在本次项目中用到的比较好用的方法:

int类型数据输入类型判断:

这是一个我在该项目中经常用到的方法,该方法对于项目中经常进行的int类型数据的数据验证非常方便,同样的还有double类型数据输入的判断,将下列代码中的int和hasNexInt改成double和hasNexDouble就可以了,可以说是非常的人性。

public int input() 
        while (!scanner.hasNextInt()) 
            //没有这一行的话会导致无限循环
            String input = scanner.next();
            System.out.println("不是数字,重新输入");
        //当是数字时循环结束
        int inputNum = scanner.nextInt();
        return inputNum;
    

电话号码判断:

该方法解决了在用户注册和用户修改电话号码时判断用户输入的电话号码是否符合规范,防止用户输入非正确格式的电话号码

public String modifyPhone()
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入电话号码:");
        String Phone = scanner.next();
        while (!validateMobilePhone(Phone))
            System.out.println("输入错误,请重新输入(电话号码为11位)");
            Phone = scanner.next();
        
        return Phone;
    

结语:

本次数据库版的图书馆管理系统的重构,增强了我对数据库、jdbc、三层架构和设计模式的理解以及git远程仓库的使用,对于团队合作完成项目也有了更深的理解,在之后的学习中,可能还会有新的挑战等着我,我将以积极的心态迎接这些新的挑战。

悄悄的分享:

csdn链接:library-management-system.rar
百度网盘链接:https://pan.baidu.com/s/1GalEWoP7ml_2HR3E5P6nqg
提取码:bjkz

以上是关于图书馆管理系统重构(数据库版)的主要内容,如果未能解决你的问题,请参考以下文章

图书馆管理系统重构(数据库版)

图书管理系统(重构版)

图书管理系统重构版

java粗略版图书管理系统

使用所学Spring知识,实现简易的图书查询系统功能。实现查询全部图书。 根据书籍编号查询信息。 根据书名查询书籍信息。 根据状态查询书籍信息。

python 做一个图书管理系统,数据库:sqlite