基于Java和MySQL的图书管理系统[通俗易懂]

Java图书管理系统设计人:wangyunpeng_bio项目需求随着计算机的普及和应用水平的提高,经过考察比较,决定利用自己的Java知识开发小型的图书管理系统,方便图书的管理。图书管理系统是典型的信息管理系统。本次作业利用JAVA开发工具Eclipse和MySQL数据库来开发这个图书管理系统。该系统要解决的图书管理所要解决的问题,可以满足图书管理基本要求,包括添加、管理等功能。…

大家好,又见面了,我是你们的朋友全栈君。

Java图书管理系统

设计人:wangyunpeng_bio

项目需求

随着计算机的普及和应用水平的提高,经过考察比较,决定利用自己的Java知识开发小型的图书管理系统,方便图书的管理。
图书管理系统是典型的信息管理系统。本次作业利用JAVA开发工具Eclipse和MySQL数据库来开发这个图书管理系统。该系统要解决的图书管理所要解决的问题,可以满足图书管理基本要求,包括添加、管理等功能。该系统能根据用户的需求,快捷方便的为读者提供借阅服务
图书管理系统应有以下功能:

  1. 读者库管理
  2. 书库管理
  3. 借阅管理
  4. 读者信息查询

图书管理系统主要针对书库的操作功能、所以系统应尽量满足需求、同时亦不可有多余或繁复的功能、令系统的操作和功能混乱。

项目地址

本项目地址:https://github.com/wangyunpengbio/Library/
免费下载方法:点那个“Clone or download”,再点“Download ZIP”就行了,感兴趣的话,大家可以点个Star
如果实在太初学者,不会下载的话,就在csdn上下载吧https://download.csdn.net/download/qq_29300341/9667678

需求分析

A.业务流程:

No. 业务流程 需求
1. 图书管理员登入系统 图书管理员需使用账号和密码登入。
2. 新增读者资料 新增读者资料,如姓名、性别、职位等。
3. 新增书籍资料 新增书籍资料,如书名、价格、种类等。
4. 读者库管理 选中读者库里的读者信息,即可更新和删除。
5. 书库管理 可以按“书编号查询”和“书名模糊查询”,继而选中书籍信息,即可更新和删除书籍分为在库和借出
6 借阅管理 输入读者编号,即可检阅读者的数据和借阅的图书,检阅顾客的数据和购买纪录。
7. 读者登入系统 读者需使用账号和密码登入。
8 借书 按书名模糊搜索,选中即可借阅图书
9 还书 检阅自己的读者信息以及已经借阅的图书,点击归还即可,不允许更改或删除读者数据,只允许查询,更改和删除功能由管理员负责。

以下是使用 实体联系模型-Entity Relationship来分析。

B.归纳实体和属性

No. 业务流程 对应的实体 实体的属性值
1. 图书管理员登入系统 Librarian nameUser password
2. 新增读者资料 Reader idReader nameReader kind sex password
3. 新增书籍资料 Book Author Publisher idBook,nameBook,price,kind,author,publisher Author.name, Author.workplace Publisher.name, Publisher.address
4. 读者库管理 Reader idReader nameReader kind sex password
5. 书库管理 Book idBook nameBook price kind autor publisher
6. 借阅管理 Borrow idReader idBook lendDate dueDate overtime
7. 读者登入系统 Reader idReader password
8 借书 Borrow idReader idBook lendDate dueDate overtime
9 还书 Borrow idReader idBook lendDate dueDate overtime

C.实体的模型

在这里插入图片描述

D.ER-实体关系

Author,Publisher To Book&Borrow&Reader To Librarian
在这里插入图片描述

设计

项目文件夹中,(代码总计:4800+行)
doc文件夹存放着生成的文档注释,可点击其中的index文件查看整个项目的注释

Src包下面含有五个包

  • Database用于存储数据库连接操作
  • Frame用于存储各个窗体界面
  • Model用于存储各个实体(表)对应的数据模型
  • Out_of_date用于存储初始时候写的界面,后来舍弃,不再调用。
  • SqlTools用于存储操作数据库的增删改查方法

image文件夹用于存放相关的界面图片,按钮图片
备注:程序不同界面的入口已经全部注释掉了,MainFrame是程序的唯一入口

程序细节设计:

  1. 登陆界面的密码回显,伴有跳转动画(此处利用了多线程,控制线程存活时间)
  2. 表格直接选中即可修改数据,更新数据时候默认有原始数据,可按不同方式搜索图书;
  3. 新增借阅信息时候,自动加入当前时间,并计算归还时间。(SQL函数NOW())
  4. 界面按钮,背景用Photoshop的重新设计,图形用户界面友好;
  5. 数据库设计达到第三范式,去除了所有非主属性对任何候选关键字的传递信依赖,冗余度低。
  6. 变量和方法命名符合规范,可读性强
  7. 不同的Model实体(表)对应不同的SqlTools操作,分开存放,程序复用性好,易扩展。
    使用
  8. 将SQL语句导入,字符集选utf8,不然有可能显示不了中文,数据库名称为library
    create database library;
  9. 推荐使用Mysql Front这个MySQL的前台,支持多句sql语句一起执行,百度第一个链接即可下载。
    http://dlsw.baidu.com/sw-search-sp/soft/6c/17997/MySQL-Front_V5.3.4.214_Setup.1435658094.exe
  10. Java环境中加入数据库的驱动,源程序里database包里DatabaseTools.java文件是有关数据库连接的操作源程序的用户名和密码皆为root,数据库名为:library不同电脑上运行需要稍微改一下这个代码。
  11. 登陆:
    图书管理员:用户名root密码 root或者wangyp密码123456
    **读者:用户名001密码 root **(注:数据库内读者的密码初始值皆为root)
  12. 在不同计算机上Eclipse使用,可能需要重新建立Java类库的路径
    本程序用1.8的jdk写的,所以最好用1.8的jre。
    代码放在1.8下面运行,连警告都不会出现,1.7和1.6显示效果不好。
    awt 和 swing 都依赖虚拟机的具体实现。所以不同平台表现不大一样。如果用javafx,界面才可以移植。
    而且编写用的笔记本电脑是高分屏,在本机上显示大小是正好的,到别的电脑上面有可能会出现界面过大的情况。
  13. 具体的文档注释已经生成,打开doc文件夹其中的index文件查看整个项目的注释
    在这里插入图片描述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128619.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 详解linux中rsync的妙用[通俗易懂]

    详解linux中rsync的妙用[通俗易懂]????1.rsync备份服务器软件介绍:Rsync是一款开源的、快速的、多功能的、可实现全量及增长的本地或远程数据同步备份的优秀工具。增量备份:只同步变化的数据细腻些,主要利用了quickcheck算法实现同步原理:1)建立好网络连接2)先进行数据信息对比3)只将变化的数据进行增量备份2.rsync软件作用说明:(1v4cp/scp/rm/ls)本地数据备份:cp[root@backup~]#cp-a/etc/hosts/tmp/hosts_cp[root@backu

    2022年10月13日
    0
  • GoogLeNet论文详解[通俗易懂]

    GoogLeNet论文详解[通俗易懂]GoogLeNet1.Introduction  得益于深度学习的优势和更强大的卷积神经网络的出现,图像分类和目标检测的准确率发生了令人意想不到的进步。在2014年的ILSVRC比赛中,GoogLeNet取得了第一名的成绩,所用模型参数不足AlexNet(2012年冠军)的1/12。论文题目《Goingdeeperwithconvolutions》中的deeper有两层含义…

    2022年8月14日
    8
  • python中删除特定字符串

    python中删除特定字符串现在有一个字符串,有一些不想要的单词和特殊字符importretext=’wo,didi;wode,;wode’text0=text.replace(‘didi’,”)print(re.sub(‘[,;]’,”,text0))先用替换后用子串可以得到自己想要的结果:wowodewode python中字符串自带的split方法一次只能使用一个字符对字…

    2022年5月30日
    42
  • 一个php技术栈后端猿的知识储备大纲

    一个php技术栈后端猿的知识储备大纲

    2021年10月10日
    36
  • 阅读软件怎么添加书源_使用OneDrive给文献管理和阅读软件知之阅读添加云同步功能…「建议收藏」

    阅读软件怎么添加书源_使用OneDrive给文献管理和阅读软件知之阅读添加云同步功能…「建议收藏」“最近发现一款不错的文献管理和阅读软件——知之阅读点击文章末尾查看原文即可打开软件的官方主页”目前,知之阅读的最新版本是在2019年10月15日发布的V1.5.0.7版,虽有近一年没有更新过了但在功能方面已经没有什么大的缺失,对于基本的文献阅读和管理已经够用,软件中也存在不少亮点功能可以在使用中慢慢感受;对于需要在多设备上切换阅读的用户(我)来讲,知之阅读存在的最主要问题就是没有云同步功…

    2022年6月21日
    43
  • Server.MapPath相关

    Server.MapPath相关如果你从Page类继承的类中执行这条语句,才可以简单地使用 DataBase=Server.MapPath(“data.mdb”);否则写全命名空间:System.Web.HttpContext.Current.Server.MapPath();总注:Serv

    2022年7月12日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号