免费app软件下载网站,移动互联时代网站建设,温州瓯海建设局网站,手机自建网站基于SSM框架的图书馆管理系统
摘要#xff1a;在21信息时代中#xff0c;编程技术的日益成熟#xff0c;计算机已经是普通使用的。编程技术的实现是基于计算机硬件上#xff0c;计算机科学与技术的进步#xff0c;让时代发展的更快#xff0c;更加信息化。人们都是学习如…基于SSM框架的图书馆管理系统
摘要在21信息时代中编程技术的日益成熟计算机已经是普通使用的。编程技术的实现是基于计算机硬件上计算机科学与技术的进步让时代发展的更快更加信息化。人们都是学习如何使用计算机来辅助做一些工作或者管理一些重要的资料。因此通过计算机管理数据是一个很有效的手段 JAVA是20世纪由著名的大公司推出来的面向对象的编程语言它可以运用在很多地方上它的特性决定了它是一门很方便运用在应用开发上面。那么本图书馆管理设计采用JAVA编程语言整体结合JAVA技术的一些特性运用简单的数据库实现基于局域网的图书馆管理系统。随着信息的增多图书和用户数量的增多很多图书信息数据管理增大。传统的手工方式管理工作量大整体管理效率不高不方便读者对图书进行查阅已经不能满足要求。在这个信息时代里计算机编程技术就成为了重中之重的时代模块。由此传统管理的人工图书馆不能满足现在的需求那么一个移动化的图书馆是非常有必要的。 根据我的调查和研究想这样去设计图书馆先做一些基本要求先用MYSQL设计简单的数据库进行测试然后自己去巩固下java的一些知识还有java如何编写功能程序再对图书馆进行基本的简单设计实现简陋的大概页面。以满足图书书籍管理该系统可以让读者借阅图书查询图书帮助管理员更容易管理图书信息。 关键词JAVA , MYSQL,spring框架 图书馆书籍管理
Library management system based on SSM framework
Abstract: In the 21st information age, with the increasingly mature programming technology, computers have become common use.The realization of programming technology is based on the computer hardware, the progress of computer science and technology, let The Times develop faster, more information.People are learning how to use computers to do some work or to manage some important information.Therefore, data management through computer is a very effective means JAVA is an object-oriented programming language introduced by famous big companies in the 20th century. It can be used in many places, and its characteristics determine that it is a very convenient application development.So this library management design USES JAVA programming language as a whole to combine some characteristics of JAVA technology, the use of simple database, library management system based on LAN.With the increase of information, the number of books and users increased, many books information data management increased.Traditional manual way of management workload, the overall management efficiency is not high, not convenient for readers to consult the books, has not been able to meet the requirements.In this information age, computer programming technology has become the most important time module.Therefore, the traditional management of artificial library can not meet the current needs, so a mobile library is very necessary. According to my investigation and research, I want to design the library in this way. First, I will do some basic requirements. First, I will use MYSQL to design a simple database test.In order to meet the books and books management, the system can let readers borrow books, search books, help administrators more easily manage the book information. Key words: JAVA, MYSQL,spring frame, library book management
目 录
1 绪 论 1.1 研究的背景和意义 1.2 研究的需求和目标 1.3 系统采用的技术 2 系统分析 2.1 系统需求说明 2.2 系统的运行环境和开发工具 3 系统设计 3.1 总体架构设计 3.2 功能模块的划分 3.2.1 用户管理和图书管理 3.2.2 借还管理和系统管理 3.2.3 出版社管理 系统监控 3.3 数据库设计 3.3.1 数据库需求分析 3.3.2 数据库的简洁设计 4 系统实现 4.1 基本界面实现 4.1.1 用户登录模块的实现 4.1.2 首页 4.1.3 角色管理模块的设计 4.2 主要界面实现 4.2.1书籍管理模块的实现 4.2.2 借阅管理界面模块的实现 4.3 重要功能的实现 4.3.1 实现数据库连接 4.3.2 图书添加 5 系统测试 5.1 测试的意义 5.2 测试的目的 5.3 软件测试措施 6 本章小结 参考文献 致谢
1 绪 论
1.1研究的背景和意义 我的想法是想着以管理角度为基点自己建立一个数据库把所有图书信息全部聚集在一起放进去这个数据库。让数据库变成一个信息库可以实现信息的获取记录查询等同时还可以解放管理人员让他们工作更加的轻松没有那么多的压力从而有更多的时间精力去做其他对自己有意义的事情。 据我的调查所知我发现高校内很多管理图书的方式是靠人工慢慢的去记录图书资料的相关信息而且有些图书的信息甚至是不全的。这样的方式缺点很多效率并不高工作量大投入的人力精力也较多。现在随着图书资料数量的越来越多投入的时间精力也会增多。人们管理图书馆的资料或者更新图书的旧信息的难度也会加大是非常不方便的。因此我认为传统的人工去管理图书在现在信息如此多的情况下是行不通的那么运用计算机编程开发一个图书馆管理系统就是一个非常行的通的管理方法。 图书管理系统是通过计算机编程实现的系统有着人工管理无法比的优点比如查找方便快速可靠性高存储量大并且成本低效率高。因此一套以计算机管理方式的图书馆管理系统是非常有必要的。 1.2研究的需求和目标 我自己对书籍的管理就是聚集管理主要研究的是怎么实现书籍的管理操作难点用springspringmvcmybatis可能运用其他技术代替来实现图书书籍的管理操作要求是主要是后台管理需要掌握java语言主要编程语言前端只涉及简单的htmlcssjspservlet技术。主要目的是实现用户借阅查询预约归还图书的功能二是实现图书管理员的添加以及修改一些图书信息。最终实现整个系统的基本书籍管理。 1.3系统采用的技术 采用技术主要是编程Java环境是自己下载的最新版的JDK1.8.04架构技术是springspringmvchibernate代替mybatis,未掌握mybatis这门技术由于本人是学前端的数据库采用mysql简单实现运用jsp解决部分功能界面等在系统结构上运用目前最基本用的三层体系结构一般用于后台方便用户直接运行后可以在浏览器上提交响应请求服务器负责响应和反馈。数据库运用简单的mysqljeecg开发平台可以减少开发过程中出现的代码重复的问题省去代码重复书写的过程与时间可以灵活使用重复性大的代码在一定的程度上可以减少工作量。
2 系统分析
2.1 系统需求说明 根据调查高校图书馆管理图书的形式这个系统可以完成以下几个方面的基本功能要求 1.对新书进行登记入库、删除管理。 图书馆管理人员对新的书籍进行添加删除等一系列操作。 2.对借书读者信息提供维护功能 管理读者借书的基本信息进行标注借的什么书以及是否续借或者当前状态。 3.可以借书、续借、还书功能 读者需要阅读书籍可以去借书还可以在期限过后继续续借也可以进行归还图书。
2.2 系统的运行环境和开发工具 操作系统win 10 开发工具Eclipse-j Web服务平台Tomcat 7.0 数据库管理Mysql JDK1.8.0_44 开发语言javaJSP
3 系统设计
3.1 总体架构设计 系统参与者 管理员主要负责用户的管理有最大的管理权限对系统进行维护。 图书馆管理员主要查看图书基本信息然后记录新图书登记用户借书和还书。 图书借阅者查看图书的基本信息。
3.2 功能模块的划分 一个软件的强弱可以决定一个软件的质量根据想法分析系统的功能需求划分出以下的图3-2功能模块 图3-2 功能模块图 3.2.1 用户管理和图书管理 管理员可以给用户一个账号用户可以自行更改自己的账号的密码还可以退出账号。支持表数据的导入等。
在图书管理这里可以进行增加删除修改查询图书等提供搜索功能方便读者搜索图书相关信息支持表数据的导入。 3.2.2 借还管理和系统管理 读者先交纳100元押金,从而保证图书的归还。每位读者最多可以同时借2本图书。读者借用书后在借书期间内还没阅读完如果需要继续借用的话则可以续借一次但是如果续借之后若超出一个月则按天数进行扣款处罚。一天扣款1元钱。如果不继续续借的话那么图书归还后则不会扣款。图书的借还管理可以分为三类已借出、已入库、延迟归还。 在管理中的角色分类管理员、图书馆管理员、读者。由于各个角色的所负责的不一样所以进行分配的时候要加入权限控制使不同的角色登陆系统后所拥有的权限不同。 3.2.3 出版社管理 系统监控 对出版社进行维护考虑到书籍都会标注出版社所以为了便于在录入图书信息时进行快速选择出版社,详细记录图书的一些基本信息。 详细记录用户的登陆时间、以及退出系统的操作等等,管理系统一些操作记录一些情况只做日志登记. 3.3 数据库设计 3.3.1 数据库需求分析 我们都知道图书馆是图书资源信息的存储地可以存储一系列图书并且用户也只会越来越多。这就要管理大量的信息数据同时我们也知道以前的图书管理都是几乎用人工管理这样的方式去管理的一般人们用文本或者表格这些很不方便的方式去记录图书的信息还有图书的状态比如借阅的记录借阅天数等对图书的所有情况基本是通过人工进行检查的这就导致很容易因为人的出错而图书记录出错。那么在图书信息越来越多的情况下人工管理这样的方式必然是行不通的并且很容易出现很多错误让数据丢失查找也是极其不方便。因此时代的变迁图书信息的管理也会改变。采用计算机信息管理手段是非有必要的由此就出现的多种多样的数据库用于管理图书信息是非常有效的手段。 数据库的设计是最重要的一环并且它也是最困难的建立数据库是系统最重要的环节它是系统的最本质的内容。数据库的设计需要符合用户的最大需求也要保证数据库的最大简洁。这样管理数据库才会有条不序不会出现数据库混乱。我们都知道现在信息的疯狂增加保存刷新和查询这就要求数据库结构一定要能充分满足各种信息的输出和输入这样用户就在数据库中拿到对自己有用的信息为后面的自己设计的具体数据库提供更方便的途径。 1.用户管理 包括读者用户的基本信息,读者的添加编辑删除。在用户管理中读者就是系统用户所以还包括用户的登录系统修改密码查阅借阅管理的中自己是否借书或者借书后的状态是否归还等功能。 2.图书管理 主要包括借阅管理书籍管理。根据自己的分析书籍一般都会标注有出版社因此出版社管理也设计其中。图书管理中出版社跟图书信息相关所以也把出版社管理设计为图书管理中的一环。 借阅管理包括录入借书的名字以及ID等可以进行图书的删除续借归还图书。图书续借为延期使用图书的借出操作图书的归还需要根据借书日期到归还日期进行是否进行罚款操作到期前续借不算进去。 书籍管理包括书籍的添加书籍的编辑删除。 出版社管理包括出版社的信息添加出版社的编辑删除。 根据以上需求分析设计简结数据库如下
3.3.2 数据库的简洁设计 数据库简洁设计如下几个要点 1 保证数据的简单不重复。 2 设计基本的结构表间不关联。 3 保证数据结构的稳定。
根据要点数据库的设计如下九个表 表不关联(关联表未掌握)简洁设计全部实现简单删除 字段 类型 长度 主键 是否空 说明 Id Int 255 Y N 管理员id userName varchar 10 N N 用户名 PassWord varchar 100 N N 密码 Realname Varchar 50 N Y 真实姓名 Status Int 6 N Y 状态 Browser Vachar 20 N Y 浏览器 Signature Blob N Y 标志附件 Userkey Varchar 200 N Y 秘钥码 Departid Varchar 32 N Y 所属部门 表1 管理员信息表T_S_BASE_USER给管理员基本信息设置字段Id作为主键。
表2 图书表T_B_BOOK这是图书基本信息的记录图书的编号名称以及图书作者等。
字段 类型 长度 主键 是否空 说明 Id varchar 36 Y N 图书编号 bookName varchar 30 N Y 图书名称 Author varchar 20 N Y 作者 BookType varchar 2 N Y 图书类型 Isbn varchar 30 N Y Isbn Pressname varchar 30 N Y 出版社名称 Status varchar 10 N Y 状态
表3 出版社表T_B_Press这是与图书信息相关的出版社表主要记录图书的出版社编号哪家出版社出版社地址等等。
字段 类型 长度 主键 是否空 说明 Id varchar 36 Y N 出版社编号 Pressname varchar 30 N Y 出版社名称 Pressaddr varchar 40 N Y 出版社地址 Presstel Varchar 15 N Y 出版社电话
表4借还书表T_B_lend借书还书记录表用于记录图书的借出和归还的日期。 字段 类型 长度 主键 是否空 说明 Id varchar 36 Y N 编号 bookId varchar 36 N Y 图书编号 bookName varchar 30 N Y 图书名称 Author varchar 20 N Y 作者 Isbn varchar 30 N Y Isbn Userid Varchar 36 N Y 用户编号 Realname Varchar 30 N Y 真实姓名 Lenddate Datetime N Y 借出日期 ReturnDate Datetime N Y 归还日期 Debit Decimal 5 N Y 扣款 Totalcount varchar 1 N Y 续借次数 Status varchar 1 N Y 状态
表5 部门表T_S_DEPART 用于分配角色属于哪个部门。 字段 类型 长度 主键 是否空 说明 Id Varchar 36 Y N 部门编号 DepartName Varchar 100 N Y 部门性质 Description Text N Y 描述
表6 日志表T_S_LOG这个表主要用于详细记录系统的基本情况。
字段 类型 长度 主键 是否空 说明 id Varchar 36 Y N 日志编号 Browser Varchar 100 N Y 浏览器 Logcontent Text N Y 日志内容 Loglevel Int 6 N Y 日志级别 Note Text N Y 登陆ip Operatetime Date N Y 操作时间 Operatetype Int 6 N Y 操作性质 Userid Varchar 36 N Y 用户编号
表7 角色表T_S_ROLE用于系统为不同用户分配不同角色例如管理书籍的则分配为图书管理员。 字段 类型 长度 主键 是否空 说明 Id Varchar 36 Y N 角色编号 Rolecode Varchar 10 N Y 角色码 RoleName Varchar 100 N Y 角色名
表8用户功能表T_S_ROLE_FUNCTION为用户设置功能以及用户属于什么角色。 字段 类型 长度 主键 是否空 说明 Id Varchar 36 Y N 用户功能编号 operation Varcahr 100 N Y 操作 roleid Varchar 36 N Y 角色编号
4 系统实现
4.1 基本界面实现 采用EASYUI设计界面看起来比较简结好看。 4.1.1 用户登录模块的实现 RequestMapping(params “login”) public String login(HttpServletRequest request) { DataSourceContextHolder .setDataSourceType(DataSourceType.dataSource_jeecg); TSUser user ResourceUtil.getSessionUserName(); String roles “”; if (user ! null) { List rUsers systemService.findByProperty( TSRoleUser.class, “TSUser.id”, user.getId()); for (TSRoleUser r : rUsers) { TSRole role r.getTSRole(); roles role.getRoleName() “,”; } if (roles.length() 0) { roles roles.substring(0, roles.length() - 1); } request.setAttribute(“roleName”, roles); request.setAttribute(“userName”, user.getUserName()); request.setAttribute(“debit”, user.getDebit()); request.getSession().setAttribute(“CKFinder_UserRole”, “admin”); else {return login/login;}}}
输入正确的用户名、密码和验证码后进行登陆。做三个文本框进行用户名密码的输入 4-1-1 登录功能模块结构图 输入错误的用户名密码验证时会提示用户名或者密码错误。
4-1-1 登录错误功能模块结构图 4.1.2 首页 登陆成功
图4-1-2首页 4.1.3 角色管理模块的设计 在角色管理这里可以添加三类角色分别是管理员读者图书管理员。在这个页面为其配置权限同时我们可以进行角色录入编辑等操作可以删除已经添加的角色但仅限管理员有权限操作。
图4-1-3 角色管理模块图 图4.5角色管理分配权限模块图
4.2 主要界面实现 4.2.1书籍管理模块的实现 添加书籍信息并对其进行增删编辑管理查看等。
图4-2-1书籍信息模块图 4.2.2 借阅管理界面模块的实现 添加借阅管理信息并对其图书的状态进行标识可以进行删除续借归还图书等操作仅限管理员可以操作。
图4-2-2借阅信息模块图 4.3 重要功能的实现 1.数据库的连接实现 2.书籍的添加录入主要时对书籍的加入 4.3.1 实现数据库连接 连接数据库使用最简单的连接方式用JDBC连接数据库把需要用的jar包jar包可能并非最新的可以使用的导入配合使用JEECG。调用其中的相关的类。通过config.properties这个配置文件获取要连接数据库中的数据和登陆数据库帐户的用户名和密码把数据库连接起来。从而实现系统与数据库的数据互通。具体的代码如下表
连接数据库代码 hibernate.dialectorg.hibernate.dialect.MySQLDialect validationQuery.sqlserverSELECT 1 jdbc.url.jeecgjdbc:mysql://localhost:3306/db_library? useUnicodetruecharacterEncodingUTF-8 jdbc.username.jeecgroot jdbc.password.jeecg123456 jdbc.dbTypemysql 4.3.2 图书添加 用户在添加图书表中将图书的基本信息填写完成后提交表单给服务器服务器那么就会根据用户提交的表单进行验证处理看是否符合正确填写的标准正确则会跳转反馈给图书成功添加。相反如果填写的信息不符合要求那么服务器不会响应这个提交的请求则图书添加失败。 信息填写正确后在这个页面才会由表单的Action属性确定将用户的请求发送到服务器下的BookController这个类下进行处理当服务器获取到请求之后调用类BookController的Add方法,在Add方法中调用BookService类中的save方法在save方法中调用了CommonServiceImpl类中的save方法进行添加。具体代码实现如下
/** * 添加图书表 * * param ids * return */用try catch捕获异常 RequestMapping(params “doAdd”) ResponseBody public AjaxJson Add(TBBookEntity tBBook, HttpServletRequest request) { AjaxJson j new AjaxJson(); String message “图书表添加成功”; try{ Book.setStatus(Globals.BOOK_RETURN); BookService.save(tBBook); systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO); }catch(Exception e){ e.printStackTrace(); message “图书表添加失败”; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; }
5 系统测试
5.1 测试的意义 我们都知道一个系统完成后都需要进行测试这个环节。那么测试的最终是为了什么呢相信学编程的都知道程序运行出错都会去检查代码是否出错。那么测试也是同样的一个道理就是为了检查是否存在没有检查出来的错误。 软件测试是因为软件的产生而产生的,是软件开发中必须实现的一个阶段。在软件系统的开发过程中会遇到很多问题需要解决。软件的生存周期中不可能不出现错误有可能存在某一个阶段。所以我们只能对每个阶段进行盘查这样才可以更早的发现错误并修正错误让软件更加可靠耐用。这是一项很重要并且不容易的困难工作对软件质量的保证具有很重要的意义. 我们都知道用面向对象技术的基本思想可以让软件质量得到保证。但是只要是编程技术就不可能在编程过程中不出现一丁点的错误。同时面向对象技术他的缺点是它的代码重复率高需要进行很严格的测试才能减少错误。 5.2 测试的目的 测试的目的是在条件成立的情况下,对已经初步完成或者已经完成的软件或者系统进行一系列测试,通过测试去发现软件或者系统中程序的错误或者BUG,BUG简称小错误缺陷会造成无法正确运行程序或者运行程序出现部分功能用不了的情况。所以通过测试修改BUG后这样可以更容易保证软件的质量或者系统的可靠性,然后对软件或者系统是否满足开发的最初需求或者最初目的做出一个正确的判断.
5.3 软件测试措施 开发需要步骤测试也是同样的原理每个步骤是逐步实现的并不是一蹴而就的。软件系统通常不是单个系统的往往是多个子系统组成一个大系统每个子系统又由很多模块构成。 (1) 单元测试:单元测试用我们的话来理解就是测试每个功能,把单个功能拿出来一个一个进行测试。一般在单元测试中主要采用功能性测试(黑盒测试)和结构性测试(白盒测试)两种。 (2)系统测试:它是检验系统是否确实能够运行或者指定功能是否实现,从而设计测试用例,根据我实习的经验来说一般设计测试用例是需要根据需求说明书去设计。根据我实习经历中一般在这个测试步骤中所发现的错误 都是在需求说明书中。准确来说系统测试我自己是采取所学的功能测试(黑盒测试)方法来检查整体大概的功能。 (3)环境测试搭建运行环境检查环境安装是否遗漏比如开发软件的安 装(eclipse)数据库软件的安装MYSQL等需要的具备的运行环境(Tomcat 的配置),数据库测试数据的输入是否有效是否能获取等等。 6 本章小结 通过三个多月的系统开发图书馆系统基本功能已经完成。在系统的开发过程中以前在学校那些很抽象的课程如软件工程导论、数据库原理与应用呀、面向对象程序设计,java程序设计等不会那么陌生了感觉在一定程度上可以帮到自己主要体现在设计思路上。因为自己基础不怎么好,感觉到这几门理论课程的重要性。 以前做一些应用的系统开发是小组做的很随意的简单功能的编程不会的有组员帮忙想到哪里就实现哪里没有一个整体的想法等到完成后才发现一大堆错误出来。另外一直以来进行设计的过程中均采用结构化开发方法对系统的整体面貌难以在开发完成前看到最终做出来的系统并不是像自己预期的那样。 我在这个项目开发得到的收获 1学习到了很多Java开发中需要掌握的技术,自己并不会都是百度查找解决方案或者寻找实习公司做后台开发的同事帮忙,虽然说自己并不是做java这一块的,但是会点还是对自己的就业有一定的益处。 2通过实践提高了系统分析的能力对一些工具的使用环境的搭建还有数据库连接等加深了熟悉程度相信在以后的工作能帮助到自己提升自己的技术能力。还可以将java知识学习一遍,对前端开发接口的学习有极大的帮助。
参考文献
[1] [美]Todd Cook. JSP从入门到精通[M].北京电子工业出版社2003. 1-385. [2] Roger S.Pressman.Software Engineering A Practitioner’s Approach, 5th ed[M].北京清华大学出版社2001.1-589. [3] Hans Bergsten. JavaServer Pages_2nd Edition[M]. O’Reilly, August 20021-500. [4] Paul C.Jorgensen.Software Testing A Craftsman’s Approach(second Edition)[M].China Machine Press,2003,170-175. [5] jsp程序设计教程 莫兵 蒙焕念 黄良永 主编.北京兵器工业出版社2015.7 [6] JavaWeb程序设计与案例教程 邵奇峰等编著 人民邮电出版社 [7]网页设计与制作教程HTML CSSJavaScript 刘瑞新 张兵义 主编 机械工业出版社 2013.4 [8]springmybatis企业应用实战 疯狂软件编著 北京电子工业出版社 20176-16. [9]刘伟. Hibernate开发与实战 北京电子工业出版社 [10]孙卫琴李洪称. Tomcat与Java Web开发技术详解[M]. 北京电子工业出版社2003. [11]美阿姆斯 数字图书馆概论 电子工业出版 [12]MySQL数据库原理.设计与应用 蒋丽影李建东主编中国矿业大学出版社 [13]朱毅张立杰基于Java Web 的图书馆管理系统 2014 [14]刘思李斌基于ELK的电力信息监控日志审计系统实现 电脑知识与技术2016 [15] 软件工程导论第四版[M]. 北京清华大学出版社2003
致谢
四年的学习生活即将结束四年的每一个日日夜夜每一天的学习生活每一次遇到的难题每一次基础的扎实都是多么值得珍惜的回忆与此同时感谢老师们的教诲。感谢广州大学松田学院以认真负责的态度为我们组织这次毕业设计以及毕业论文答辨,也感觉指导老师的耐心。你们的严格把关对我来说有很大的压力和险阻。在这种压力下促使我面对自己的完全几乎不懂的敢于去挑战通过这次煅炼使我们的后台系统开发水平各方面都有了较大的进步并且对我自己以后就业有一定的专业性的帮助。通过积累的经验将对我们以后的学习和生活产生巨大的影响。 感谢我的指导老师在毕业设计时给出时间让我们选题教我们如何进 选题写开题报告任务书日志以及后续的PPT制作等,给出建议和意见说不要和同学们的题目太相像,愉快的完成学业。