前言


本文是介绍本人在编写图书管理系统项目过程当中的一些心得体会,以及对所学知识的简单应用。本项目是与我发的第二个小项目图书管理系统一样,只是上次采用的是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,一步步的开发过程在我们完善的文档中明确异常,而我们按照文档的要求,知晓流程的顺畅,就会让我们在开发过程中举重若轻,驾轻熟就!!!

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

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

  1. 【C#项目】图书馆管理系统-WinForm+MySQL

    文章目录 前言 一.业务梳理与需求分析 1.功能描述 2.实现步骤 3.功能逻辑图 二.数据库设计 1.实体-关系(E-R图)概念模型设计 2.数据表设计 三.WinForm界面交互设计 1.界面交互 ...

  2. java计算机毕业设计图书馆管理系统源码+系统+mysql数据库+LW文档+部署文件

    java计算机毕业设计图书馆管理系统源码+系统+mysql数据库+LW文档+部署文件 java计算机毕业设计图书馆管理系统源码+系统+mysql数据库+LW文档+部署文件 本源码技术栈: 项目架构:B ...

  3. 计算机毕业设计Java阿博图书馆管理系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java阿博图书馆管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java阿博图书馆管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S ...

  4. 基于java阿博图书馆管理系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署

    基于java阿博图书馆管理系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java阿博图书馆管理系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 本源码技术栈 ...

  5. 基于Java毕业设计学校图书馆管理系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计学校图书馆管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计学校图书馆管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 ...

  6. Java计算机毕业设计图书馆管理系统演示录像源码+系统+数据库+lw文档

    Java计算机毕业设计图书馆管理系统演示录像源码+系统+数据库+lw文档 Java计算机毕业设计图书馆管理系统演示录像源码+系统+数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  7. java控制台输出图书馆管理系统(只用java代码不用数据库和GUI等)

    java控制台输出图书馆管理系统(只用java代码不用数据库和GUI,java入门的新手秒懂) 在个项目中,我只用数组保存数据,和只用for循环和if条件语句来完成,连数组工具类都没用,所以导致要用到 ...

  8. java计算机毕业设计任务进度监督的软件项目实训管理系统源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计任务进度监督的软件项目实训管理系统源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计任务进度监督的软件项目实训管理系统源程序+mysql+系统+lw文档+远程调 ...

  9. 图书馆管理系统数据库设计与实现--用于学完SQL/MYSQL练手

    图书馆管理系统数据库设计与实现 数据库设计大作业

  10. java计算机毕业设计敬老院管理系统源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计敬老院管理系统源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计敬老院管理系统源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构:B/S架构 ...

最新文章

  1. git编辑器选哪个_对比了3款markdown编辑器,哪一款适合你呢?来看看吧
  2. 蓄力十年,做一个成就
  3. 邀请合作如何表达_有偿兼职!土木在线全媒体平台招募原创合作
  4. 云炬随笔20190701
  5. 阿丽塔大脑是机器人哪_阿丽塔——和机器人结合的未来离我们有多远?
  6. MVC控制器传递多个实体类集合到视图的方案总结
  7. 关于Chrome支持http header最大长度限制的讨论
  8. css html 抽屉,CSS快速入门-前端布局1(抽屉)(示例代码)
  9. 从java到C++入门
  10. python 苹果id申请_如何申请百度机器翻译API的ID和Key,为Python调用做准备
  11. c标签判断true false jsp_Java学习知识点:小白如何掌握JSP技术?
  12. 虚拟化+云服务器,虚拟化+云服务器
  13. wiki——Isogeometric_analysis
  14. vb.net 全局键盘钩子
  15. macbook重装系统 选择方案_Mac重装系统教程(二):网络在线重装系统
  16. Linux常用命令:scp命令
  17. ROS入门之——action
  18. 正则表达式之数字验证
  19. 人生第一份跳槽面试经历
  20. 驱动中同步与异步发送IRP

热门文章

  1. VS2005水晶报表教程
  2. C语言程序设计的七个准备步骤
  3. 全网最详细的openstack安装教程
  4. 苹果id登录_英雄联盟手游是用苹果ID好还是拳头好 账号选择建议_英雄联盟手游...
  5. java 后加_java中的前加加++和后加加++,有很多人搞的很晕,不太明白!今天我举几个例子说明下前++和后++的区别!其实大家只要记住一句话就可以了,前++是先自加再使...
  6. Android驱动开发过程中常用的adb指令
  7. HTML5实现在线拍照功能(调取摄像头API)
  8. 推荐几款好用的网站CMS管理系统
  9. STM8S_007_片内FLASH和EEPROM编程
  10. Cocos技术派 | TS版属性声明详解