互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,采用图书馆管理系统可以有效管理,使信息管理能够更加科学和规范。
图书馆管理系统在Eclipse环境中,使用Java语言进行编码,使用Mysql创建数据表保存本系统产生的数据。系统可以提供信息显示和相应服务,其管理员增删改查数据资料,审核数据订单,查看数据,通过留言功能回复用户提问。
总之,图书馆管理系统集中管理信息,有着保密性强,效率高,存储空间大,成本低等诸多优点。它可以降低信息管理成本,实现信息管理计算机化。
关键词:图书馆管理系统;Java语言;Mysql
1.1 课题背景
互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。所以各行业,尤其是规模较大的企业和学校等都开始借助互联网和软件工具管理信息,传播信息,共享信息等等,以此可以增强自身实力,提高在同行业当中的竞争能力,并从各种激烈的竞争中获取发展的机会。针对购买书籍信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,经过分析和考虑,在目前的情况下,可以引进一款图书馆管理系统这样的现代化管理工具,这个工具就是解决上述问题的最好的解决方案。它不仅可以实时完成信息处理,还缩短购买书籍信息管理流程,使其系统化和规范化。同时还可以减少工作量,节约购买书籍信息管理需要的人力和资金。所以图书馆管理系统是信息管理环节中不可缺少的工具,它对管理者来说非常重要。
1.2 课题意义
现如今,信息种类变得越来越多,信息的容量也变得越来越大,这就是信息时代的标志。近些年,计算机科学发展得也越来越快,而且软件开发技术也越来越成熟,因此,在生活中的各个领域,只要存在信息管理,几乎都有计算机的影子,可以说很多行业都采用计算机的方式管理信息。信息计算机化处理相比手工操作,有着保密性强,效率高,存储空间大,成本低等诸多优点。针对购买书籍信息管理,采用图书馆管理系统可以有效管理,使信息管理能够更加科学和规范。
总之,在实际中使用图书馆管理系统,其意义如下:
第一点:图书馆管理系统的实际运用,可以帮助管理人员在短时间内完成信息处理工作;
第二点:通过系统页面的合理排版布局,可以更加直观的展示系统的内容,并且使用者可以随时阅读页面信息,随时操作系统提供的功能;
第三点:可以实现信息管理计算机化;
第四点:可以降低信息管理成本;
1.3 研究内容
对图书馆管理系统设计制作,不仅需要技术支撑,也需要大量的理论研究。本文在对图书馆管理系统进行介绍时,将按照如下内容进行。
第一部分:介绍图书馆管理系统研究的背景意义,便于用户了解系统;
第二部分:介绍开发图书馆管理系统需要搭建的环境,包括技术和工具;
第三部分:介绍用户对图书馆管理系统的功能要求,以及对图书馆管理系统的性能要求等;
第四部分:介绍数据库的设计方案,以及根据功能要求设计的功能结构;
第五部分:介绍通过编码最终实现的系统功能运行效果;
第六部分:介绍系统的功能测试,对系统进行综合检测,并及时解决系统出现的问题,直至系统运行正常。
第2章 开发环境与技术
图书馆管理系统的编码实现需要搭建一定的环境和使用相应的技术,接下来的内容就是对图书馆管理系统用到的技术和工具进行介绍。
2.1 MYSQL数据库
本课题所开发的应用程序在数据操作方面是不可预知的,是经常变动的,没有办法直接把数据写在文档里,这样不仅仅不安全,也不能实现应用程序的功能。如果要能实现应用程序所需要的数据存储功能,就避免不了要进行专业数据库存储软件的选择。基本上应用程序实现的功能不算太复杂,市面上任何一个关系型数据库软件都可以实现。参考自己的学习进度和操作习惯来讲,Oracle数据库是适合的,但是所需要的的安装软件很大,并且有好多不需要的功能都是开启的状态,十分消耗电脑资源,所以没有选择Oracle数据库,而SQL Server数据库虽然学过,但是安装的时候因为电脑上可能有其他的软件存在,经常性的出问题,而安装问题不好解决就需要重新安装操作系统,这样对已经存在的软件来讲又是一种时间上的浪费。只有MySQL数据库,安装包小,安装速度快,操作简单,哪怕安装出问题也好解决,不用重装操作系统,也不影响电脑上运行的其他软件,消耗资源也少,最重要的是在功能方面完全的符合设计需要,所以最后选择了MySQL数据库作为应用软件开发需要的数据库。
2.2 vue技术
在动态网站的兴起之初,作为高级编程语言的Java自然不会放弃这个领域的蛋糕。Sun公司推出了Servlet作为输出动态网站的一种技术标准,虽然不怎么受当时程序员的喜爱,但是当初也没有太多的选择,随后几个月java语言问世,不考虑性能和效率如何,起码在书写网页所需要的动态代码块和静态代码块方面进行了区分,让书写效率和可读效率大大的提升,所以很多Java程序员以及刚入行的初级程序员都选择了java语言作为自己职业的发展方向,Sun公司为了维护Java语言在高级编程语言上的江湖地位,防止java继续抢走市场份额占有率,Sun公司联合Apache基金会研发了一个关于Java动态网页的一个新型的技术标准,这就是vue技术。vue吸取了java语言在页面书写上面的所有优点,但是又背靠Java EE的庞大后台,又能实现很多通过Java组件就能实现的功能,在vue页面上可以直接引用那些组件,让vue更加的强壮丰富。保证了Java技术纵向的可持续发展,并且在动态网站开发领域终于站稳了脚跟,其他java开发人员可以很快的转移到vue进行开发,不考虑一些特殊组件或者功能的开发,只从动态页面的开发上来讲,完全实现了java程序和vue程序的几乎无成本的转换,vue技术就这样的发展了起来。
2.3 Spring Boot框架
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
SpringBoot框架中还有两个非常重要的策略:开箱即用和约定优于配置。开箱即用,Outofbox,是指在开发过程中,通过在MAVEN项目的pom文件中添加相关依赖包,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。这个特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑。约定优于配置,Convention over configuration,是一种由SpringBoot本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。这一特点虽降低了部分灵活性,增加了BUG定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化。
SpringBoot应用系统开发模板的基本架构设计从前端到后台进行说明:前端常使用模板引擎,主要有FreeMarker和Thymeleaf,它们都是用Java语言编写的,渲染模板并输出相应文本,使得界面的设计与应用的逻辑分离,同时前端开发还会使用到Bootstrap、AngularJS、JQuery等;在浏览器的数据传输格式上采用Json,非xml,同时提供RESTfulAPI;SpringMVC框架用于数据到达服务器后处理请求;到数据访问层主要有Hibernate、MyBatis、JPA等持久层框架;数据库常用MySQL;开发工具推荐IntelliJIDEA。
4.3.2 数据库物理设计
本数据库是关系型数据库,因此对二维表的结构设计也比较关键。毕竟二维表格模型就是关系型数据库中的关系模型。而一些常用的关系模型中的概念也需要了解,才可以对关系模型进行设计。下面就简单介绍关系,元组,属性,域,关键字等常用概念的含义。
关系:关系就是数据库中的一张数据表,每张数据表都有命名,也就是每个关系也有名字,那就是数据表名;
元组:元组就是数据表中的一行记录;
属性:属性就是数据表中的字段,也就是数据表中的一列;
域:域就是对数据表中属性的取值进行限定;
关键字:关键字就是数据表中的主键;
在了解了表结构设计的常用概念后,接下来就需要使用前面绘制的E-R模型完成表结构的设计工作,并在数据库中创建数据表,并为各个数据表进行命名。以下就对设计的结果通过表格形式进行展示。
表4.1收货地址表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 yonghu_id Integer 创建用户 是
3 address_name String 收货人 是
4 address_phone String 电话 是
5 address_dizhi String 地址 是
6 isdefault_types Integer 是否默认地址 是
7 insert_time Date 添加时间 是
8 update_time Date 修改时间 是
9 create_time Date 创建时间 是
表4.2购物车表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 yonghu_id Integer 所属用户 是
3 shujigoumai_id Integer 书籍 是
4 buy_number Integer 购买数量 是
5 create_time Date 添加时间 是
6 update_time Date 更新时间 是
7 insert_time Date 创建时间 是
表4.3字典表表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 dic_code String 字段 是
3 dic_name String 字段名 是
4 code_index Integer 编码 是
5 index_name String 编码名字 是
6 super_id Integer 父字段id 是
7 beizhu String 备注 是
8 create_time Date 创建时间 是
表4.4捐赠书籍表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 juanzengshuji_name String 书籍名称 是
3 juanzengshuji_zuozhe String 书籍作者 是
4 juanzengshuji_chubanshe String 出版社 是
5 shujigoumai_types Integer 书籍类型 是
6 yonghu_id Integer 用户 是
7 juanzengshuji_time Date 捐赠时间 是
8 create_time Date 创建时间 是
表4.5书籍购买表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 shujigoumai_uuid_number String 书籍编号 是
3 shujigoumai_name String 书籍名称 是
4 shujigoumai_types Integer 书籍类型 是
5 shujigoumai_photo String 书籍照片 是
6 shujigoumai_kucun_number Integer 书籍库存 是
7 shujigoumai_zuozhe String 书籍作者 是
8 shujigoumai_chubanshe String 出版社 是
9 shujigoumai_old_money BigDecimal 书籍原价 是
10 shujigoumai_new_money BigDecimal 现价 是
11 shangxia_types Integer 是否上架 是
12 shujigoumai_delete Integer 逻辑删除 是
13 shujigoumai_content String 书籍简介 是
14 create_time Date 创建时间 是
表4.6书籍评价表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 shujigoumai_id Integer 书籍 是
3 yonghu_id Integer 用户 是
4 shujigoumai_commentback_text String 评价内容 是
5 reply_text String 回复内容 是
6 insert_time Date 评价时间 是
7 update_time Date 回复时间 是
8 create_time Date 创建时间 是
表4.7书籍订单表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 shujigoumai_order_uuid_number String 订单号 是
3 shujigoumai_id Integer 书籍 是
4 yonghu_id Integer 用户 是
5 address_id Integer 地址 是
6 buy_number Integer 购买的数量 是
7 shujigoumai_order_true_price BigDecimal 实付价格 是
8 shujigoumai_order_types Integer 订单类型 是
9 shujigoumai_order_payment_types Integer 支付类型 是
10 insert_time Date 订单创建时间 是
11 create_time Date 创建时间 是
表4.8书籍借阅记录表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 shujixinxi_id Integer 书籍 是
3 yonghu_id Integer 用户 是
4 jieyue_types Integer 借阅状态 是
5 shujijieyuejie_time Date 借书时间 是
6 shujijieyuehuan_time Date 还书时间 是
7 create_time Date 创建时间 是
表4.9书籍信息表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 shujixinxi_uuid_number String 书籍编号 是
3 shujixinxi_name String 书籍名称 是
4 shujigoumai_types Integer 书籍类型 是
5 shujixinxi_photo String 书籍照片 是
6 shujixinxi_kucun_number Integer 书籍库存 是
7 shujixinxi_zuozhe String 书籍作者 是
8 shujixinxi_chubanshe String 出版社 是
9 shujixinxi_delete Integer 逻辑删除 是
10 shujixinxi_content String 书籍简介 是
11 create_time Date 创建时间 是
表4.10用户表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 yonghu_name String 用户姓名 是
3 yonghu_photo String 头像 是
4 yonghu_phone String 用户手机号 是
5 yonghu_id_number String 用户身份证号 是
6 yonghu_email String 邮箱 是
7 new_money BigDecimal 余额 是
8 yonghu_delete Integer 假删 是
9 create_time Date 创建时间 是
表4.11预约书籍表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 yuyueshuji_name String 书籍名称 是
3 yuyueshuji_zuozhe String 书籍作者 是
4 yuyueshuji_chubanshe String 出版社 是
5 shujigoumai_types Integer 书籍类型 是
6 yonghu_id Integer 用户 是
7 yuyueshuji_time Date 预约时间 是
8 create_time Date 创建时间 是
表4.12用户表表
序号 列名 数据类型 说明 允许空
1 Id Int id 否
2 username String 用户名 是
3 password String 密码 是
4 role String 角色 是
5 addtime Date 新增时间 是