java项目三——图书馆管理系统(数据库mysql版本)

前言


本文是介绍本人在编写图书管理系统项目过程当中的一些心得体会,以及对所学知识的简单应用。本项目是与我发的第二个小项目图书管理系统一样,只是上次采用的是IO流,这次使用的是数据库,由于本人学习的数据库为MySQL,因此本项目采用MySQL数据库的形式,运用jdbc进行增删改查。

一、图书管理系统概述


这是我关于图书馆管理系统的重写,上一个版本是利用了io流进行的整体增删改查,还有存储。而这次,我使用了学习到的数据库知识,还有jdbc的知识,git工具进行了整体的重构。本次系统项目,为多人项目,由我与我同学两人共同完成。

1.1 目的

长期以来,人们使用传统的人工方式管理图书馆的日常业务,其操作流程比较烦琐。在借书时,读者首先将要借的书和借阅证交给工作人员,然后工作人员将每本书的信息卡片和读者的借阅证放在一个小格栏里,最后在借阅证和每本书贴的借阅条上填写借阅信息。在还书时,读者首先将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息。太过于繁琐了!所以,我们需求设计一个图书管理系统来方便学生的借书和图书馆管理书籍。

1.2 系统流程图

二、项目流程


1、建文档(重中之重)

我们一共创建了四个文档,包括软件需求说明,概要设计说明,数据库设计,接口设计;

首先,软件需求即使我们需要完成的目标向文件。比如需求规定,系统IPO图,IPO表,还有各种需求,都是我们需要进行完善,需要达到的目标。

1.1 需求规定——功能规定——系统用例图:

管理员用例图:

操作员用例图:

1.2 需求规定——功能规定——系统IPO图与表:

操作员模块

管理员模块

 其次,进行概要整理,能明白基本设计的思路,需要在文档中完善处理流程,完善整个项目的结构(例如三层架构),其次还要明白整个项目的数据结构的逻辑。

2.1 处理流程:

操作员流程图

管理员流程图

2.2结构 

包图:

包图说明:本系统基于五层架构,分为界面层(UI)、逻辑层(BLL)、数据处理层(DAL)、接口层(IDAL)、实体层(Entity)。前面三层都需要引用实体类,因为需要通过实体层来传递参数。

2.3 逻辑结构设计要点(只单独举例管理员与操作员)

最后,就是数据库与接口的设计,这就关系到具体的开发,设计数据库方便我跟进行数据库的连接进行操作增删改查,而接口的设计关系到我们对于对于代码结构的设计与编写,面向对象思想六大原则——开闭原则就是要求代码开发需要面向接口编程。

所以需要提前确立好数据库的编写与接口的设计。

3.1 数据库编写

 逻辑结构:

操作员(员工编号、密码、用户名、姓名)

管理员(员工编号、密码、用户名、姓名)

图书(编号、类型编号、名称、作者、出版社、日期、印刷次数、单价、实际数量、总量)

图书类型(类型编号、名称)

读者(编号、类型编号、姓名、性别、年龄、电话、所在系部、注册日期、借书数量)

读者类型(类型编号、名称、最多借阅图书数量、最长借阅图书天数、罚金)

日志(自动编号,记录时间,时间记录,记录类型)

图书借阅(读者编号,图书编号,图书名称,借阅日期,最迟归还日期,罚金)

3.2 接口设计

接口创建方法,对于接下来的操作作出大致规定。接口的创建对应数据库的逻辑结构。

2、建项目,做配置,连接数据库,创线上共享代码仓库

创建好文档后,开始进行一系列的前期配置工作。

首先,创建一个项目模块。

其次,进行文件配置,如使用druid数据库连接池的配置文件,比如使用JDBC连接的配置等等,做好数据库的连接工作。

最后,创建线上的共享git仓库,方便合作者进行共同开发功能,上传下载代码都十分方便。

3、创包,创实体类,完善架构

完成前期工作,就开始进行创包,一个package一个类型,按照文档中的层次,即三层架构的方式来进行包的分类创建。

然后底层实体类,有了一个整体的框架结构后,再决定从什么地方开始编程的开发。

4、编码开发开始

两个层次,从外向内开发,还是从里向外整体的逐步完善。

5、完成整体逻辑,运行找BUG

完成代码的整体编写后,找BUG就是属于程序员的“快乐”了。

6、提交验收

或是提交项目验收,或是面向市场的检验。

三、项目总结


重点1:文档

怎样写文档,怎样掌控流程,怎样创类图,怎样创数据库,怎样设计三层架构

对于这个项目下来,我有着十分多的心得体会,比如怎样写文档,怎样掌控流程,怎样创类图,怎样创数据库,怎样设计三层架构......很多很多,不一而足,当我完成的那一刻,整个人放松下来的时候,自豪又满意!

对于这次的项目,重点之一的文档真的是重中之重,当我们能够编写好一个文档之后,再进行代码的创作开发时,就会发现很快就能够上手,而不是毫无头绪的如苍蝇乱飞,不知从何下手。

文档在于开发的重要性,在我看来,不言而喻。

重点2:过程

开发项目的另一个重点在我看来,是知晓这个开发的过程,当我们知晓一个完成的开发需要用到哪些流程的时候我们就会发现,我们所需要完成的东西并不会太多,而是只需要我们进行按部就班的一步步来。

从数据库mysql到dao到service到view再到web,一步步的开发过程在我们完善的文档中明确异常,而我们按照文档的要求,知晓流程的顺畅,就会让我们在开发过程中举重若轻,驾轻熟就!!!

这便是我全部的开发心得,收获颇丰,与诸君共勉!

  • 34
    点赞
  • 258
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值